l CheckStyle专注于格式方面的规范,如行内不能有tab符、‘{’前要有空格等。这些要求往往很少和代码逻辑相关,而是更加关心程序员的编码风格和编码习惯,他要求程序员要写出不仅好用,而且好看、好读的代码。由于不同公司,或者说不同标准,对于一个优秀的代码风格拥有不一样的要求,所以不同的配置文件对CheckStyle检测出来的错误影响极大。我们在运用CheckStyle中的谷歌标准检查代码时,曾经检测出来一千多个错误,因为eclipse在每一行都自动加了tab符来控制缩进,这在谷歌标准中是不允许的,所以这一个错误在每一行都出现,一共出现了超过600次。因此,在我们看来,使用CheckStyle来检查代码,选择一个合适的配置文件十分关键。当然,我们可以自己来修改每一项标准,虽然很繁琐,但这样的标准一定最适合我们的要求。
l PMD更加关注代码执行时可能会产生的潜在错误,它十分严格,会尽量帮你检测出所有可能导致错误的元素。比如说,它要求你不能在循环中实例化对象,不能直接使用数字作为常量,不能调用HashMap和ArrayList这些数据类型,而要直接调用它们的接口。PMD给人的感觉,更像一位谨慎且经验丰富的老者,它能准确的指出所有可能在将来给你带来麻烦的细节,然后指导你去一个一个地改进。有的时候,它似乎显得有些多虑,或者说过于谨小慎微,但这种一丝不苟、对待潜在BUG毫不松懈地精神,却是在以后地代码使用和代码维护中,可以给我们省下大量的时间和精力。另外在个人配置方面,PMD可以通过导入配置文件的方法,来便捷的修改检查标准,当然,我们也可以通过手工修改细节,来使得配置