Modify Your Codes with PMD(1)

来源:互联网 发布:逐鹿seo军刀破解版 编辑:程序博客网 时间:2024/05/17 20:28
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

1.代码质量检查的必要性

略(我知道还有人想就此抬杠)

2.Java项目可采用的提高代码质量的工具

我所了解和尝试过的Java项目可采用的代码检查工具(全是开源的):

FindBugs:  http://findbugs.sourceforge.net 静态代码分析工具

CheckStyle:  http://checkstyle.sourceforge.net 静态代码分析工具

PMD: PMD.sourceforge.net/">http://PMD.sourceforge.net 静态代码分析工具

JUnit: http://www.junit.org 单元测试工具

以上工具都可以与Ant结合使用,并可以集成到Eclipse中。(以后慢慢学、慢慢说)

FindBugsPMDCheckStyle都提供开发团队自定义检查规则的可能,通过团队自己的开发,可使这些工具按照开发团队自身的规范来检查代码。

多罗嗦两句:

FindBugsPMD都是以分析Java代码本身为主要功能,而Checkstyle则以分析格式为主。软件工程中对代码质量的定义往往不只是对代码编写的要求,JavaDoc或代码中的注释也是也属于代码质量检查的范围,用FindBugsPMD就不行了,用CheckStyle吧。

单就Java代码(非注释、非JavaDoc)检查来看,FingBugsPMD也不同:

FingBugs分析的对象是*.class文件,而PMD的分析对象*.java源代码。分析原理当然也不同了:FindBugs是以字节码设计库(Code Engineering Library)为基础的,欲自行编写需熟练掌握字节码设计库,这是另一个开源项目(http://jakarta.apache.org/bcel/),牛人们看看吧。PMD则是基于抽象语义树(ASTAbstract Syntax Tree)的,即:将Java源代码根据其语义分析为由若干语义节点(Node)的树状结构,PMD根据AST上各节点之间的关系来分析代码中错误或不符合规范的地方。

3.下载安装和使用PMD

PMD工具以及源码可以在其项目首页上下载到,针对各种Java IDE的插件也以下载到,我下了个JBuilder的插件――PMD-jbuilder-1.2.zip。下载后将zip4*.jar文件拷入Jbuilder…libext目录下,然后重启JBuilder

重启Jbuilder后,Jbuilder的工具条栏会出现有关PMD的三个工具条按钮:

PMD Check File--PMD检查当前*.java源代码文件;

PMD Check Project--PMD检查当前Java工程中的所有*.java文件;

CPD Check Project--PMD中的CPD工具检查当前Java工程中copy/paste的代码

点击“PMD Check File”试一下,PMD会根据其已经内建的规则(PMD称之为Rule)检查当前*.java源代码文件中的不符合规范(或是不够优化)的地方,每一处均给出所在行号和简单说明。开发人员可以根据其提示进行改进或优化。我查了一下我最近的代码,还真不少,有些错误的确有可能引起严重后果。感谢PMD

4.总结

PMD是工具,不是方法。开发团队在提高代码质量的努力中需要这样的工具来支持。PMD不但内建若干代码检查的规则(Rule),还可以自行开发(如前面第2节所提到的)规则。下一次,我会分享我自行开发PMD代码检查规则的全过程。希望朋友们多来指教!谢谢!

 

 

 

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>