﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-梦想飞翔</title><link>http://www.blogjava.net/love1563/</link><description>自强不息</description><language>zh-cn</language><lastBuildDate>Fri, 15 May 2026 08:57:28 GMT</lastBuildDate><pubDate>Fri, 15 May 2026 08:57:28 GMT</pubDate><ttl>60</ttl><item><title>从菜鸟走向大数据高手</title><link>http://www.blogjava.net/love1563/archive/2015/12/22/428778.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Tue, 22 Dec 2015 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2015/12/22/428778.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/428778.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2015/12/22/428778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/428778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/428778.html</trackback:ping><description><![CDATA[<span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">大数据是用scala语言，和java有些不同又比java强大，省去了很多繁琐的东西，scala中的的接口用trait来定义，不同于java的接口，trait中可以有抽象方法也可以有不抽象方法。scala中的方法中还可以定义方法，这在java中是从来没有的。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">大数据未来几年发展的重点方向，大数据战略已经在十八届五中全会上作为重点战略方向，中国在大数据方面才刚刚起步，但是在美国已经产生了上千亿的市场价值。举个例子，美国通用公司是一个生产飞机发动机的一个公司，这家公司在飞机发动机的每一个零部件上都安装了传感器，这些传感器在飞机发动机运作的同时不断的把发动机状态的数据传到通用公司的云平台上，通用公司又有很多数据分析中心专门接受这些数据，根据大数据的分析可以随时掌握每一家航空公司发动机的飞行状况，可以告知这些航空公司发动机的哪些部件需要检修或保养，避免飞机事故，通过这种服务通用公司就产生了几百亿美元的产值。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">现在正是学习大数据的最好机遇，不花一分钱就可以成为大数据高手，实现年薪50万的梦想。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">王家林的第一个中国梦：免费为全社会培养100万名优秀的大数据从业人员！</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">您可以通过王家林老师的微信号18610086859发红包捐助大数据、互联网+、O2O、工业4.0、微营销、移动互联网等系列免费实战课程， 目前已经发布的王家林免费视频全集如下：</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">1，《大数据不眠夜：Spark内核天机解密（共100讲）》：http://pan.baidu.com/s/1eQsHZAq<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">2，《Hadoop深入浅出实战经典》http://pan.baidu.com/s/1mgpfRPu<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">3，《Spark纯实战公益大讲坛》http://pan.baidu.com/s/1jGpNGwu<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">4，《Scala深入浅出实战经典》http://pan.baidu.com/s/1sjDWG25<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">5，《Docker公益大讲坛》http://pan.baidu.com/s/1kTpL8UF<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">6，《Spark亚太研究院Spark公益大讲堂》http://pan.baidu.com/s/1i30Ewsd<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">7，DT大数据梦工厂Spark、Scala、Hadoop的所有视频、PPT和代码在百度云网盘的链接：</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">http://pan.baidu.com/share/home?uk=4013289088#category/type=0&amp;qq-pf-to=pcqq.group<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">王家林免费在51CTO发布的1000集合大数据spark、hadoop、scala、docker视频：<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">1，《Scala深入浅出实战初级入门经典视频课程》http://edu.51cto.com/lesson/id-66538.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">2，《Scala深入浅出实战中级进阶经典视频课程》http://edu.51cto.com/lesson/id-67139.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">3，《Akka深入浅出实战经典视频课程》http://edu.51cto.com/lesson/id-77672.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">4，《Spark亚太研究院决胜大数据时代公益大讲堂》http://edu.51cto.com/lesson/id-30815.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">5，《云计算Docker虚拟化公益大讲坛 》http://edu.51cto.com/lesson/id-61776.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">6，《Spark 大讲堂（纯实战手动操作）》http://edu.51cto.com/lesson/id-78653.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">7，《Hadoop深入浅出实战经典视频课程-集群、HDFS、Yarn、MapReduce》http://edu.51cto.com/lesson/id-77141.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">8，《从技术角度思考Hadoop到底是什么》http://edu.51cto.com/course/course_id-1151.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">&#8220;DT大数据梦工厂&#8221;团队第一个中国梦：免费为社会培养100万名优秀的大数据从业人员。每天早上4点起持续分享大数据、互联网+、O2O、工业4.0、微营销、移动互联网等领域的</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">精华内容，帮助您和公司在DT时代打造智慧大脑，将生产力提高百倍以上！</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">DT大数据梦工厂微信公众号：DT_Spark，二维码如下，期待大家加入！</span><img src ="http://www.blogjava.net/love1563/aggbug/428778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2015-12-22 11:23 <a href="http://www.blogjava.net/love1563/archive/2015/12/22/428778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从菜鸟走向大数据高手</title><link>http://www.blogjava.net/love1563/archive/2015/12/22/428777.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Tue, 22 Dec 2015 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2015/12/22/428777.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/428777.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2015/12/22/428777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/428777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/428777.html</trackback:ping><description><![CDATA[<span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">大数据是用scala语言，和java有些不同又比java强大，省去了很多繁琐的东西，scala中的的接口用trait来定义，不同于java的接口，trait中可以有抽象方法也可以有不抽象方法。scala中的方法中还可以定义方法，这在java中是从来没有的。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">大数据未来几年发展的重点方向，大数据战略已经在十八届五中全会上作为重点战略方向，中国在大数据方面才刚刚起步，但是在美国已经产生了上千亿的市场价值。举个例子，美国通用公司是一个生产飞机发动机的一个公司，这家公司在飞机发动机的每一个零部件上都安装了传感器，这些传感器在飞机发动机运作的同时不断的把发动机状态的数据传到通用公司的云平台上，通用公司又有很多数据分析中心专门接受这些数据，根据大数据的分析可以随时掌握每一家航空公司发动机的飞行状况，可以告知这些航空公司发动机的哪些部件需要检修或保养，避免飞机事故，通过这种服务通用公司就产生了几百亿美元的产值。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">现在正是学习大数据的最好机遇，不花一分钱就可以成为大数据高手，实现年薪50万的梦想。</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">王家林的第一个中国梦：免费为全社会培养100万名优秀的大数据从业人员！</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">您可以通过王家林老师的微信号18610086859发红包捐助大数据、互联网+、O2O、工业4.0、微营销、移动互联网等系列免费实战课程， 目前已经发布的王家林免费视频全集如下：</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">1，《大数据不眠夜：Spark内核天机解密（共100讲）》：http://pan.baidu.com/s/1eQsHZAq<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">2，《Hadoop深入浅出实战经典》http://pan.baidu.com/s/1mgpfRPu<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">3，《Spark纯实战公益大讲坛》http://pan.baidu.com/s/1jGpNGwu<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">4，《Scala深入浅出实战经典》http://pan.baidu.com/s/1sjDWG25<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">5，《Docker公益大讲坛》http://pan.baidu.com/s/1kTpL8UF<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">6，《Spark亚太研究院Spark公益大讲堂》http://pan.baidu.com/s/1i30Ewsd<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">7，DT大数据梦工厂Spark、Scala、Hadoop的所有视频、PPT和代码在百度云网盘的链接：</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">http://pan.baidu.com/share/home?uk=4013289088#category/type=0&amp;qq-pf-to=pcqq.group<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">王家林免费在51CTO发布的1000集合大数据spark、hadoop、scala、docker视频：<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">1，《Scala深入浅出实战初级入门经典视频课程》http://edu.51cto.com/lesson/id-66538.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">2，《Scala深入浅出实战中级进阶经典视频课程》http://edu.51cto.com/lesson/id-67139.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">3，《Akka深入浅出实战经典视频课程》http://edu.51cto.com/lesson/id-77672.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">4，《Spark亚太研究院决胜大数据时代公益大讲堂》http://edu.51cto.com/lesson/id-30815.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">5，《云计算Docker虚拟化公益大讲坛 》http://edu.51cto.com/lesson/id-61776.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">6，《Spark 大讲堂（纯实战手动操作）》http://edu.51cto.com/lesson/id-78653.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">7，《Hadoop深入浅出实战经典视频课程-集群、HDFS、Yarn、MapReduce》http://edu.51cto.com/lesson/id-77141.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">8，《从技术角度思考Hadoop到底是什么》http://edu.51cto.com/course/course_id-1151.html<span class="Apple-converted-space">&nbsp;</span></span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">&#8220;DT大数据梦工厂&#8221;团队第一个中国梦：免费为社会培养100万名优秀的大数据从业人员。每天早上4点起持续分享大数据、互联网+、O2O、工业4.0、微营销、移动互联网等领域的</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">精华内容，帮助您和公司在DT时代打造智慧大脑，将生产力提高百倍以上！</span><br style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px" /><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-stroke-width: 0px">DT大数据梦工厂微信公众号：DT_Spark，二维码如下，期待大家加入！</span><img src ="http://www.blogjava.net/love1563/aggbug/428777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2015-12-22 11:22 <a href="http://www.blogjava.net/love1563/archive/2015/12/22/428777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目管理八项经典技术</title><link>http://www.blogjava.net/love1563/archive/2015/02/27/423088.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Fri, 27 Feb 2015 11:30:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2015/02/27/423088.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/423088.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2015/02/27/423088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/423088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/423088.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/love1563/archive/2015/02/27/423088.html'>阅读全文</a><img src ="http://www.blogjava.net/love1563/aggbug/423088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2015-02-27 19:30 <a href="http://www.blogjava.net/love1563/archive/2015/02/27/423088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>团队管理：领导者的五个致命错误</title><link>http://www.blogjava.net/love1563/archive/2014/02/18/409991.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Tue, 18 Feb 2014 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2014/02/18/409991.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/409991.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2014/02/18/409991.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/409991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/409991.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/love1563/archive/2014/02/18/409991.html'>阅读全文</a><img src ="http://www.blogjava.net/love1563/aggbug/409991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2014-02-18 16:45 <a href="http://www.blogjava.net/love1563/archive/2014/02/18/409991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>控制_22_分钟的会议时间</title><link>http://www.blogjava.net/love1563/archive/2013/12/28/408145.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Sat, 28 Dec 2013 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/12/28/408145.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/408145.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/12/28/408145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/408145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/408145.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/love1563/archive/2013/12/28/408145.html'>阅读全文</a><img src ="http://www.blogjava.net/love1563/aggbug/408145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-12-28 10:34 <a href="http://www.blogjava.net/love1563/archive/2013/12/28/408145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高效 Java Web 开发框架 JessMA v3.3.1 Beta-1 发布 .</title><link>http://www.blogjava.net/love1563/archive/2013/11/24/406735.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Sat, 23 Nov 2013 23:49:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/11/24/406735.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/406735.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/11/24/406735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/406735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/406735.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;JessMA（原名：Portal-Basic）是一套功能完备的高性能&nbsp;Full-Stack&nbsp;Web&nbsp;应用开发框架，内置可扩展的&nbsp;MVC&nbsp;Web&nbsp;基础架构和&nbsp;DAO&nbsp;数据库访问组件（内部已提供了&nbsp;Hibernate、MyBatis&nbsp;与&nbsp;JDBC...&nbsp;&nbsp;<a href='http://www.blogjava.net/love1563/archive/2013/11/24/406735.html'>阅读全文</a><img src ="http://www.blogjava.net/love1563/aggbug/406735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-11-24 07:49 <a href="http://www.blogjava.net/love1563/archive/2013/11/24/406735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ITPUB索引树</title><link>http://www.blogjava.net/love1563/archive/2013/09/30/404643.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Mon, 30 Sep 2013 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/09/30/404643.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/404643.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/09/30/404643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/404643.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/404643.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ITPUB索引树&nbsp;&nbsp;<a href='http://www.blogjava.net/love1563/archive/2013/09/30/404643.html'>阅读全文</a><img src ="http://www.blogjava.net/love1563/aggbug/404643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-09-30 11:42 <a href="http://www.blogjava.net/love1563/archive/2013/09/30/404643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>收藏的网址</title><link>http://www.blogjava.net/love1563/archive/2013/09/03/403596.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Tue, 03 Sep 2013 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/09/03/403596.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/403596.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/09/03/403596.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/403596.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/403596.html</trackback:ping><description><![CDATA[apache svn：<a href="http://svn.apache.org/repos/asf">http://svn.apache.org/repos/asf</a><img src ="http://www.blogjava.net/love1563/aggbug/403596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-09-03 14:21 <a href="http://www.blogjava.net/love1563/archive/2013/09/03/403596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让开发自动化: 用 Eclipse 插件提高代码质量</title><link>http://www.blogjava.net/love1563/archive/2013/06/19/400742.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Wed, 19 Jun 2013 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/06/19/400742.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/400742.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/06/19/400742.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/400742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/400742.html</trackback:ping><description><![CDATA[<p>开发软件时，我的主要目标之一是：要么防止将缺陷引入代码库，要么限制缺陷的生存期；换言之，要尽早找到缺陷。很显然，越是了解如何编写更好的代码以及如何有效测试软件，就越能及早地捕捉到缺陷。我也很想要一张能发现潜在缺陷的安全之网。</p><p>在本系列 <a href="http://www.ibm.com/developerworks/cn/java/j-ap08016/index.html">八月份</a> 的那期文章中，我得出了这样的结论：将检验工具集成到构建过程（例如，使用 Ant 或 Maven）中，能够建立起一种寻找潜在缺陷的方法。尽管这种方法使一致性成为可能并超越了 IDE，但它也有一点<em>反作用</em>。必须在本地构建软件或等待 Continuous Integration 构建的运行。如果使用 Eclipse 插件，就可以在通过 Continuous Integration 构建或集成<em>前</em> 发现一些这样的冲突。这就促成了我称为<em>渐进编程</em> 的编程方式，在这种方式下，允许在编码过程中进行一定程度的质量检验 &#8212;&#8212;再也不能比这个更早了！</p><p>本文涵盖了我所认为的 &#8220;五大&#8221; 代码分析领域：</p><ul><li>编码标准</li><li>代码重复</li><li>代码覆盖率</li><li>依赖项分析</li><li>复杂度监控</li></ul><p>可以用接下来的几个灵活的 Eclipse 插件来揭示这些分析领域：</p><ul><li>CheckStyle：用于编码标准</li><li>PMD 的 CPD：帮助发现代码重复</li><li>Coverlipse：测量代码覆盖率</li><li>JDepend：提供依赖项分析</li><li>Eclipse Metric 插件：有效地查出复杂度</li></ul><div class="ibm-container ibm-alt-header dw-container-sidebar"><h2>Eclipse 不是您的构建系统</h2><div class="ibm-container-body">				&nbsp; 使用 Eclipse 插件与您将这些检验工具用于构建过程并不矛盾。事实上，您想要确保的是：下列使用 Eclipse 插件的规则就是应用到构建过程中的规则。</div></div><p><a name="N100B9"><span class="atitle">安装 Eclipse 插件</span></a></p><p>安装 Eclipse 插件再简单不过了，只需要几个步骤。在开始之前，最好把该插件下载站点的 URL 准备好。表 1 是本文用到的插件的列表： </p><br /><a name="N100C2"><strong>表 1. 代码改进插件和相应的下载站点 URL</strong></a><br /><table class="ibm-data-table" border="0" cellspacing="0" summary="Table using a caption tag, alternating color rows" cellpadding="0" width="100%"><caption><tbody><tr><th>工具</th><th>目的</th><th>Eclipse 插件的 URL</th></tr><tr><td class="tb-row">CheckStyle</td><td>编码标准分析</td><td>http://eclipse-cs.sourceforge.net/update/</td></tr><tr class="alt-row"><td class="tb-row">Coverlipse</td><td>测试代码覆盖率</td><td>http://coverlipse.sf.net/update</td></tr><tr><td class="tb-row">CPD</td><td>复制/粘贴检验</td><td>http://pmd.sourceforge.net/eclipse/</td></tr><tr class="alt-row"><td class="tb-row">JDepend</td><td>包依赖项分析</td><td>http://andrei.gmxhome.de/eclipse/</td></tr><tr><td class="tb-row">Metrics</td><td>复杂度监控</td><td>http://metrics.sourceforge.net/update</td></tr></tbody></table><p>知道了这些有用插件的下载地址后，安装插件就是一个极简单的过程。启动 Eclipse，然后遵循下列步骤：</p><ol><li>选择 <strong>Help | Software Updates | Find and Install</strong>，如图 1 所示：<br /><br /><br /><br /><a name="fig1"><strong>图 1. 寻找并安装 Eclipse 插件</strong></a><br /><img alt="寻找并安装 Eclipse 插件" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/findinstall-plugin.jpg" width="572" height="200" /><br /><br /><br /><br /></li><li>选择 <strong>Search for new features to install</strong> 单选按钮,单击 <strong>Next</strong>。 <br /><br /></li><li>单击 <strong>New Remote Site</strong>，输入要安装的插件名和 URL（参见图 2），单击 <strong>OK</strong>，然后单击 <strong>Finish</strong> 来显示 Eclipse 更新管理器。<br /><br /><br /><br /><a name="fig2"><strong>图 2. 配置新的远程站点</strong></a><br /><img alt="配置新的远程站点" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/pmd-remotesite.jpg" width="353" height="151" /><br /><br /><br /><br /></li><li>在 Eclipse 更新管理器中，有一个查看插件各方面特性的选项。我通常选择顶级项，如图 3 所示。选择您需要的选项并单击 <strong>Finish</strong>。Eclipse 现在安装该插件。您需要重启 Eclipse 实例。 <br /><br /><br /><br /><a name="fig3"><strong>图 3. 安装 Eclipse 插件</strong></a><br /><img alt="安装 Eclipse 插件" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/pmd-updates.jpg" width="572" height="476" /><br /><br /></li></ol><p>请遵循上述这些步骤来安装其他的 Eclipse 插件；只需改变插件名和相应的下载位置即可。 </p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N10193"><span class="atitle">用 CheckStyle 校正标准</span></a></p><p>代码库的可维护性直接影响着软件的整个成本。另外，不佳的可维护性还会让开发人员十分头痛（进而导致开发人员的缺乏）&#8212;&#8212; 代码越容易修改，就越容易添加新的产品特性。像 CheckStyle 这样的工具可以协助寻找那些可影响到可维护性、与编码标准相冲突的地方，比方说，过大的类、太长的方法和未使用的变量等等。</p><div class="ibm-container ibm-alt-header dw-container-sidebar"><h2>有关 PMD</h2><div class="ibm-container-body">另一个叫做 PMD 的开源工具提供的功能和 CheckStyle 类似。我偏爱 CheckStyle，但 PMD 也有很多执着的追随者，所以我建议您了解一下这个工具，毕竟它也颇受一些人的青睐。</div></div><p>使用 Eclipse 的 CheckStyle 插件的好处是能够在编码过程中了解到源代码上下文的各种编码冲突，让开发人员更可能在签入该代码前真正处理好这些冲突。您也几乎可以把 CheckStyle 插件视作一个连续的代码复查工具！</p><p>安装 CheckStyle 插件并做如下配置（参见图 4）：</p><ol><li>选择 <strong>Project</strong>，然后选择 Eclipse 菜单中的 <strong>Properties</strong> 菜单项。<br /><br /></li><li>选择 <strong>CheckStyle active for this project</strong> 复选框，单击 <strong>OK</strong>。 <br /><br /><br /><br /><a name="fig4"><strong>图 4. 在 Eclipse 中配置 CheckStyle 插件 </strong></a><br /><img alt="在 Eclipse 中配置 CheckStyle 插件" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/checkstyle-config.jpg" width="572" height="456" /><br /><br /></li></ol><p>Eclipse 重新构建工作空间，并在 Eclipse 控制台中列示已发现的编码冲突，如图 5 所示：</p><br /><a name="fig5"><strong>图 5. Eclipse 中 CheckStyle 的代码冲突列表 </strong></a><br /><img alt="Eclipse 中 CheckStyle 的代码冲突列表" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/checkstyle-eclipse.jpg" width="572" height="412" /><br /><p>使用 CheckStyle 插件在 Eclipse 内嵌入编码标准检验是一种很棒的方法，用这种方法可以<em>在编码时</em> 积极地改进代码，从而在开发周期的早期发现源代码中潜在的缺陷。这么做还有更多的好处，如节省时间、减少失败，也因此会减少项目的成本。没错，这就是一种积极主动的方式！</p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N101EF"><span class="atitle">用 Coverlipse 确认覆盖率</span></a></p><p>Coverlipse 是一个用于 Cobertura 的 Eclipse 插件，Cobertura 是一个代码覆盖率工具，可以用它来评估具有相应测试的源代码的比率。Cobertura 也提供一个 Ant 任务和 Maven 插件，但用 Cobertura，您可以<em>在编写代码时</em> 评估代码覆盖率。您见过这样的模式吗？</p><p>通过选择 Eclipse 菜单项 <strong>Run</strong> 安装 Coverlipse 插件并将其和 JUnit 关联起来，该操作会显示一系列运行配置选项，例如 JUnit、SWT 应用程序和 Java&#8482; 应用程序。右键单击它并选择 <strong>JUnit w/Coverlipse</strong> 节点中的 <strong>New</strong>。在这里，需要确定 JUnit 测试的位置，如图 6 所示：</p><br /><a name="fig6"><strong>图 6. 配置 Coverlipse 以获取代码覆盖率 </strong></a><br /><img alt="配置 Coverlipse 以获取代码覆盖率" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/coverlipse-config.jpg" width="572" height="458" /><br /><p>一旦单击了 <strong>Run</strong>，Eclipse 会运行 Coverlipse 并在源代码（如图 7 所示）中嵌入标记，该标记显示了具有相关 JUnit 测试的代码部分：</p><br /><a name="fig7"><strong>图 7. Coverlipse 生成的具有嵌入类标记的报告 </strong></a><br /><img alt="Coverlipse 生成的具有嵌入类标记的报告" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/coverlipse-report.jpg" width="572" height="414" /><br /><p>正如您所见，使用 Coverlipse Eclipse 插件可以更快地确定代码覆盖率。例如，这种实时数据功能有助于在将代码签入 CM 系统<em>前</em> 更好地进行测试。这对渐进编程来说意味着什么呢？</p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N10233"><span class="atitle">用 CPD 捕捉代码重复</span></a></p><p>Eclipse 的 PMD 插件提供了一项叫做 CPD（或复制粘贴探测器）的功能，用于寻找重复的代码。为在 Eclipse 中使用这项便利的工具，需要安装具有 PMD 的 Eclipse 插件，该插件具有 CPD 功能。</p><p>为寻找重复的代码，请用右键单击一个 Eclipse 项目并选择 <strong>PMD | Find Suspect Cut and Paste</strong>，如图 8 所示：</p><br /><a name="fig8"><strong>图 8. 使用 CPD 插件运行复制粘贴检验</strong></a><br /><img alt="使用 PMD/CPD 插件运行复制粘贴检验" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/cpd-eclipse.jpg" width="528" height="602" /><br /><p>一旦运行了 CPD，您的 Eclipse 根目录下就会创建出一个 <code>report</code> 文件夹，其中包含一个叫做 cpd.txt 的文件，文件中列示了所有重复的代码。图 9 中是一个 cpd.txt 文件的例子：</p><br /><a name="fig9"><strong>图 9. Eclipse 插件生成的 CPD 文本文件</strong></a><br /><img alt="Eclipse 插件生成的 CPD 文本文件" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/cpd-report.jpg" width="572" height="504" /><br /><p>靠人工来寻找重复的代码是一项挑战，但使用像 CPD 这样的插件却能在编码时轻松地发现重复的代码。</p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N1026A"><span class="atitle">使用 JDepend 进行依赖项检查</span></a></p><p>JDepend 是个可免费获取的开源工具，它为包依赖项提供面向对象的度量值，以此指明代码库的弹性。换句话说，JDepend 可有效测量一个架构的健壮性（反之，脆弱性）。</p><p>除了 Eclipse 插件，JDepend 还提供一个 Ant 任务、Maven 插件和一个 Java 应用程序，用以获取这些度量值。对于相同的信息，它们有着不同的传递机制；但 Eclipse 插件的特别之处和相应优点是：它能以更接近源代码（即，编码时）的方式传递这条信息。</p><p>图 10 演示了使用 Eclipse JDepend 插件的方法：通过右键单击源文件夹并选择 <strong>Run JDepend Analysis</strong>。一定要选择一个含源代码的源文件夹；否则看不到此菜单项。</p><br /><a name="fig10"><strong>图 10. 使用 JDepend Analysis 分析代码</strong></a><br /><img alt="使用 JDepend Analysis 分析代码" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/run-jdepend.jpg" width="306" height="521" /><br /><p>图 11 显示了运行 JDepend Analysis 时生成的报告。左边显示包，右边显示针对每个包的依赖项度量值。</p><br /><a name="fig11"><strong>图 11. Eclipse 项目中的包依赖项 </strong></a><br /><img alt="Eclipse 项目中的包依赖项" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/jdepend-report.jpg" width="572" height="412" /><br /><p>正如您所见，JDepend 插件提供了有助于不断观察架构可维护性变化的大量信息 &#8212;&#8212; 这其中最大的好处是您可以在编码时看到这些数据。</p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N102A0"><span class="atitle">用 Metrics 测量复杂度</span></a></p><p>&#8220;五大&#8221;代码分析最后的一项是测量复杂度。Eclipse 提供一种叫做 Metrics 的插件，使用该插件可以进行许多有用的代码度量，包括圈复杂度度量，它用于测量方法中惟一路径的数目。</p><p>安装 Metrics 插件并重启 Eclipse；然后遵循下列步骤：</p><ol><li>右键单击您的项目并选择 <strong>Properties</strong> 菜单。在结果窗口中，选择 <strong>Enable Metrics plugin</strong> 复选框并单击 <strong>OK</strong>，如图 12 所示： <br /><br /><br /><br /><a name="fig12"><strong>图 12. 为项目配置 Metrics</strong></a><br /><img alt="为项目配置 Metrics" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/metrics-enable-project-properties.jpg" width="572" height="475" /><br /><br /><br /><br /></li><li>从 Eclipse 中选择 <strong>Window</strong> 菜单打开 Metrics 视图，然后选择 <strong>Show View | Other...</strong>。<br /><br /></li><li>选择 <strong>Metrics | Metrics View</strong> 打开如图 13 中显示的窗口。您需要使用 Java 透视图并重新构建项目，从而显示这些度量值。<br /><br /><br /><br /><a name="fig13"><strong>图 13. 打开 Eclipse 中的 Metrics View </strong></a><br /><img alt="打开 Eclipse 中的 Metrics View" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/metrics-view.jpg" width="276" height="401" /><br /><br /><br /><br /></li><li>单击 <strong>OK</strong> 来显示如图 14 中的窗口。<br /><br />在此例中，我正在查看一个单独方法的圈复杂度。真正妙的是您可以双击 Metrics 列表中的方法，该插件会在 Eclipse 编辑器中为此方法打开源代码。这就让修正变得超级简单（如果需要的话）！<br /><br /><br /><br /><a name="fig14"><strong>图 14. 查看方法的圈复杂度</strong></a><br /><img alt="查看方法的圈复杂度" src="https://www.ibm.com/developerworks/cn/java/j-ap01117/metrics-report.jpg" width="572" height="377" /><br /><br /></li></ol><p>正如我之前提到过的，Eclipse Metrics 插件还提供了许多功能强大的度量值，有助于您在开发软件的过程中改进代码 &#8212;&#8212; 可见，它是一个渐进编程意义上的插件!</p><div class="ibm-alternate-rule"><hr /></div><p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="https://www.ibm.com/developerworks/cn/java/j-ap01117/#ibm-pcon">回页首</a></p><p><a name="N1031C"><span class="atitle">合适的才是最好的</span></a></p><p>正如您从本文中看到的那样，将&#8220;五大&#8221;测量方法，即编码标准、代码重复、代码覆盖率、依赖项分析和复杂度监控，用于改进代码质量十分重要。但适合您的才是好的。请记住还有其他许多可用的 Eclipse 插件（比如 PMD 和 FindBugs）能够帮助您在开发周期的早期改进代码质量。不管您想要的工具或偏爱的方法是什么，重要的是：行动起来去积极改进代码质量并让手工代码检验的过程变得更加有效。我估计您使用这些插件一段时间后，就再也离不开它们了。</p><!-- CMA ID: 192414 --> <!-- Site ID: 10 --> <!-- XSLT stylesheet used to transform this file:  dw-article-6.0-beta.xsl --><br /><p><a name="resources"><span class="atitle">参考资料 </span></a></p><p><strong>学习</strong></p><ul><li>您可以参阅本文在 developerWorks 全球站点上的 <a href="http://www.ibm.com/developerworks/java/library/j-ap01117/?S_TACT=105AGX52&amp;S_CMP=cn-a-j" target="_blank">英文原文</a> 。<br /><br /></li><li><a href="http://www.ibm.com/developerworks/cn/java/j-ap/"><em>让开发自动化</em></a>（Paul Duvall，developerWorks）：阅读完整的系列。<br /><br /></li><li>&#8220;<a href="http://www.jacoozi.com/index.php?option=com_content&amp;task=view&amp;id=121&amp;Itemid=134">Improving Code Quality with PMD and Eclipse</a>&#8221; （Levent Gurses，Jacoozi，2005 年 1 月）：这篇文章将 PMD 视为 Eclipse 插件，介绍了使用 PMD 改进代码质量并缩短代码检验过程的方法。<br /><br /></li><li>&#8220;<a href="http://www.ibm.com/developerworks/cn/java/j-cobertura/">用 Cobertura 测量测试覆盖率</a>&#8221; （Elliotte Rusty Harold，developerWorks，2005 年 5 月）：Elliotte Rusty Harold 分享了他的经验，即如何使用代码覆盖率的最佳实践来利用 Cobertura。<br /><br /></li><li>&#8220;<a href="http://www.ibm.com/developerworks/cn/java/j-cq01316/index.html">不要被覆盖报告所迷惑</a>&#8221; （Andrew Glover，developerWorks，2006 年 1 月）：这篇文章进一步揭示了覆盖率报告中的数字所代表的真正含义，也给出了这些数字所不能代表的含义。<br /><br /></li><li>&#8220;<a href="http://www.onjava.com/pub/a/onjava/2004/01/21/jdepend.html">Managing Your Dependencies with JDepend</a>&#8221; （Glen Wilcox，OnJava，2004 年 1 月）：在这篇文章中，Glen Wilcox 介绍了 JDepend，这是一个可以免费获取的工具，它能洞悉软件架构中的许多质量问题。<br /><br /></li><li>&#8220;<a href="http://www.ibm.com/developerworks/cn/java/j-cq04256/index.html">软件架构的代码质量</a>&#8221; （Andrew Glover，developerWorks，2006 年 4 月）：Andrew Glover 介绍了如何持续监控以及如何改正能够影响软件架构长期存续性的代码质量问题。<br /><br /></li><li>&#8220;<a href="http://www.ibm.com/developerworks/cn/java/j-ap08016/index.html"><em>让开发自动化</em>: 持续检查</a>&#8221; （Paul Duvall，developerWorks，2006 年 8 月）：Paul Duvall 介绍了自动化的检查工具（如 CheckStyle、JavaNCSS 和 CPD ）是如何增强开发过程的以及何时应该使用这些工具。<br /><br /></li><li>&#8220;<a href="http://www.onjava.com/pub/a/onjava/2003/03/12/pmd_cpd.html">Detecting Duplicate Code with PMD's CPD</a>&#8221; （Tom Copeland，OnJava，2003 年 3 月）：Tom Copeland 介绍了一种叫做 CPD（复制/粘贴检测器）的开源工具，该工具用于寻找重复的 Java 代码。<br /><br /></li><li>&#8220;<a href="http://www.testearly.com/2006/03/14/maintain-organizational-standards-with-code-audits/">Maintain organizational standards with code audits&#8221;</a> （testearly.com）：编码标准有利于广大开发人员对代码库达成共识。<br /><br /></li><li><a href="http://www.ibm.com/developerworks/cn/java/">developerWorks Java 技术专区</a>：数百篇关于 Java 编程各方面的文章。<br /><br /></li></ul><p><strong>获得产品和技术</strong></p><ul><li><a href="http://pmd.sourceforge.net/eclipse/">Eclipse plugin for PMD</a>：使用 PMD 插件在代码中寻找复制粘贴问题。<br /><br /></li><li><a href="http://andrei.gmxhome.de/jdepend4eclipse/index.html">Eclipse plugin for JDepend</a>：此插件有助于分析代码库中的包依赖项。<br /><br /></li><li><a href="http://coverlipse.sf.net/update">Eclipse plugin for Cobertura</a>：Coverlipse 是 用于 Cobertura 的 Eclipse 插件，它提供代码覆盖率信息。<br /><br /></li><li><a href="http://metrics.sourceforge.net/update">Eclipse Metrics</a>：此插件提供度量值，如圈复杂度，非常有助于寻找复杂代码。<br /><br /></li><li><a href="http://eclipse-cs.sourceforge.net/update/">Eclipse plugin for CheckStyle</a>：检验项目编码标准的遵循情况。<br /><br /></li></ul><p><strong>讨论</strong></p><ul><li><a href="http://www.ibm.com/developerworks/forums/dw_forum.jsp?S_TACT=105AGX52&amp;cat=10&amp;S_CMP=cn-a-j&amp;forum=812">提高代码质量论坛</a>：developerWorks 的积极贡献者 Andrew Glover 是一名专注于改进代码质量的顾问，他为这个由他主持的论坛带来了很多相当专业的知识。<br /><br /></li></ul><p><a name="author"><span class="atitle">关于作者</span></a></p><div class="ibm-container ibm-portrait-module ibm-alternate-two"><div class="ibm-container-body"><img class="dw-author-img" alt="Paul Duvall" src="http://www.ibm.com/developerworks/i/p-pduvall.jpg" width="64" height="80" /><p><a name="author1"> </a>Paul Duvall 是 <a href="http://www.stelligent.com/">Stelligent Incorporated</a> 的 CTO，该公司利用有效的开发人员测试策略，以及能够让团队尽早尽多地监视和提高代码质量的持续集成技术，帮助其他企业解决软件的质量问题。他还是 <a href="http://www.amazon.com/gp/product/0471463612/">UML&#8482; 2 Toolkit</a> 一书的作者之一，目前正在与他人合作撰写 <a href="http://www.amazon.com/gp/product/0321336380/">Continuous Integration: Improving Software Quality and Reducing Risk</a> (Addison-Wesley) 一书。</p></div></div><img src ="http://www.blogjava.net/love1563/aggbug/400742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-06-19 17:27 <a href="http://www.blogjava.net/love1563/archive/2013/06/19/400742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Eclipse快捷键 10个最有用的快捷键</title><link>http://www.blogjava.net/love1563/archive/2013/06/11/400480.html</link><dc:creator>love1563</dc:creator><author>love1563</author><pubDate>Tue, 11 Jun 2013 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/love1563/archive/2013/06/11/400480.html</guid><wfw:comment>http://www.blogjava.net/love1563/comments/400480.html</wfw:comment><comments>http://www.blogjava.net/love1563/archive/2013/06/11/400480.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/love1563/comments/commentRss/400480.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/love1563/services/trackbacks/400480.html</trackback:ping><description><![CDATA[<div>http://www.open-open.com/bbs/view/1320934157953/</div><br /><br /><div><strong>&nbsp;  1. ctrl+shift+r：打开资源</strong> <p>&nbsp;&nbsp;&nbsp;  这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件，而你只需要按下文件名或mask名中的前几个字母，比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。</p> <p><br /> <a target="_blank"><img src="http://www.open-open.com/bbs/uploadImg/20111110/20111110220701_651.jpg" title="【转】eclipse快捷键 10个最有用的快捷键 " alt="【转】eclipse快捷键 10个最有用的快捷键 " border="0" height="500" width="600" /></a></p> <p><strong>  2. ctrl+o：快速outline</strong></p> <p>&nbsp;&nbsp;&nbsp;  如果想要查看当前类的方法或某个特定方法，但又不想把代码拉上拉下，也不想使用查找功能的话，就用ctrl+o吧。它可以列出当前类中的所有方法及属性，你只需输入你想要查询的方法名，点击enter就能够直接跳转至你想去的位置。</p> <p><br /> <a target="_blank"><img src="http://www.open-open.com/bbs/uploadImg/20111110/20111110220709_16.jpg" title="【转】eclipse快捷键 10个最有用的快捷键 " alt="【转】eclipse快捷键 10个最有用的快捷键 " border="0" height="403" width="503" /></a></p> <p><strong>3. ctrl+e：快速转换编辑器</strong></p> <p>&nbsp;&nbsp;&nbsp;  这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡，但是在很多文件打开的状态下，ctrl+e会更加有效率。</p> <p><br /> <a target="_blank"><img src="http://www.open-open.com/bbs/uploadImg/20111110/20111110220906_315.jpg" title="eclipse快捷键 10个最有用的快捷键 " alt="eclipse快捷键 10个最有用的快捷键 " border="0" height="271" width="316" /></a></p> <p><strong>4. ctrl+2，L：为本地变量赋值</strong></p> <p>&nbsp;&nbsp;&nbsp;   开发过程中，我常常先编写方法，如Calendar.getInstance()，然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。 这样我节省了输入类名，变量名以及导入声明的时间。Ctrl+F的效果类似，不过效果是把方法的计算结果赋值于类中的域。</p> <p><strong>&nbsp;&nbsp;&nbsp;  5. alt+shift+r：重命名</strong></p> <p>&nbsp;&nbsp;&nbsp;  重命名属性及方法在几年前还是个很麻烦的事，需要大量使用搜索及替换，以至于代码变得零零散散的。今天的Java  IDE提供源码处理功能，Eclipse也是一样。现在，变量和方法的重命名变得十分简单，你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使 用这个功能，将<a target="_blank">鼠标</a>移动至属性名或方法名上，按下alt+shift+r，输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性，你可以点击alt+shift+r两次，这会呼叫出源码处理对话框，可以实现get及set方法的自动重命名。</p> <p><strong>&nbsp;&nbsp;&nbsp;  6. alt+shift+l以及alt+shift+m：提取本地变量及方法</strong></p> <p>&nbsp;&nbsp;&nbsp;   源码处理还包括从大块的代码中提取变量和方法的功能。比如，要从一个string创建一个常量，那么就选定文本并按下alt+shift+l即可。如果同 一个string在同一类中的别处出现，它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度，并提 升代码的可测试性。</p> <p><strong>&nbsp;&nbsp;&nbsp;  7. shift+enter及ctrl+shift+enter</strong></p> <p>&nbsp;&nbsp;&nbsp;  Shift+enter在当前行之下创建一个空白行，与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。</p> <p><strong>&nbsp;&nbsp;&nbsp;  8. Alt+方向键</strong></p> <p>&nbsp;&nbsp;&nbsp;  这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分，这个快捷方式尤其好使。</p> <p><strong>&nbsp;&nbsp;&nbsp;  9. ctrl+m</strong></p> <p>&nbsp;&nbsp;&nbsp;  大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。</p> <p><strong>&nbsp;&nbsp;&nbsp;  10. ctrl+.及ctrl+1：下一个错误及快速修改</strong></p> <p>&nbsp;&nbsp;&nbsp;   ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用，即修改建议的快捷键。新版Eclipse的修改建 议做的很不错，可以帮你解决很多问题，如方法中的缺失参数，throw/catch exception，未执行的方法等等。</p> <p><br /> <a target="_blank"><img style="width:672px;height:290px;" src="http://www.open-open.com/bbs/uploadImg/20111110/20111110220910_390.jpg" title="eclipse快捷键 10个最有用的快捷键 " alt="eclipse快捷键 10个最有用的快捷键 " border="0" /></a></p> <p>更多快捷键组合可在Eclipse按下ctrl+shift+L查看。</p></div><img src ="http://www.blogjava.net/love1563/aggbug/400480.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/love1563/" target="_blank">love1563</a> 2013-06-11 15:28 <a href="http://www.blogjava.net/love1563/archive/2013/06/11/400480.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>