PMD和Checkstyle
根据PMD的文档,它会对代码中的如下部分进行检查:
未使用的本地变量
空的catch块
未使用参数
空if语句
重复的import语句
未使用的私有方法
可能是Singletons的类
短/长变量及方法名字
Checkstyle检查如下部分:
Javadoc注释
命名约定
标题
Import语句
体积大小
空白
修饰符
块
混合检查(包活一些有用的比如非必须的System.out和printstackTrace)
它们的作用
PMD,Checkstyle能够检查Javadoc注释;但是PMD提供了一项叫作CPD的很有用的功能,它检查代码的拷贝粘贴部分。我使用PMD找到的最频繁的错误是未使用的import语句,未使用的私有变量以及意外重复拼写。Checkstyle可以发现更多的错误。包括漏掉的Javadoc注释,超过80个字符的行、不合约定的变量名、用tab来代替空格等等。两个工具都允许创建自定义的规则。
如果想在你的组织中使用它们中的一个,Checkstyle似乎更好一些:它检查公司编码约定的大多数项目。如果增强代码质量是主要目标,那PMD是一个好的选择。但是如果你想要更多的功能并真正使用工具来修改代码,应该试试Jalopy。
Jalopy,Jalopy是一个易于配置的源代码格式程序,它能检测并修补Java代码中大量的习惯性缺陷。Jalopy更像一个代码整理器而不是检查器。Jalopy的插件现在已经支持大多数IDE,而且多数是无缝集成。我发现Jalopy特别强大,能够干许多很酷的事情。例如,它可以修改代码缩进、对齐括号、使行宽符合某个字符长度、插入相关的Javadoc注释以及对import语句排序。Jalopy最好的地方是超级自定义功能。一个简单的用户界面就可以让你选择Jalopy的所有功能的开关,不需要XML配置文件。
不要浪费资源
我建议大家使用这些工具来代替那些费时费力却收效甚微的人工代码检查工作。一旦使用这些工具将代码检查变成了一个相对轻松的任务,你就可以把代码检查作为一项普通工作而不是在项目结尾被进度逼得一团糟时做的事情。这些工具也提供了与Apache Ant的集成,因此你可以每天运行这些代码检查器,在编译或执行单元测试它们也能工作得很好。控制好你的代码,并交付那些你真的认为是高质量的东西。