Board logo

标题: java进阶(三)------java编程规范---代码质量检测工具FindBugs、PMD和CheckStyle对比 [打印本页]

作者: look_w    时间: 2019-5-11 10:22     标题: java进阶(三)------java编程规范---代码质量检测工具FindBugs、PMD和CheckStyle对比

我们在开发过程中会发现我们并没有太多的时间来进行代码检查和review,不过我们可以通过工具来自动进行代码的检查,提高工作效率。FindBugs、PMD和CheckStyle这三个工具就是这样的目的。使用这三种工具能让我们写出更规范的代码,提高我们代码的性能。


这三款工具对代码检查的侧重点是有区别的,我们现在来了解一下它们的区别:

工具     目的     检查项     特点
FindBugs

    检查.class
基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug     主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等     FindBugs 大多数提示有用,值得改
配置无查找功能,不过缩写能让我们很快找到某个规则
提供图形界面的独立程序,对jar进行检测,有报告生成,非常方便
很多功能插件没有实现,可独立使用FindBugs,但没法同时修改源码
PMD

    检查源文件
检查Java源文件中的潜在问题     主要包括:
空try/catch/finally/switch语句块
未使用的局部变量、参数和private方法
空if/while语句
过于复杂的表达式,如不必要的if语句等
复杂类     比较严格
独立的程序是命令行形式操作
插件可以配置规则,有独立显示问题的视图,也很方便
一般来说,需要自定义规则才通过检验
CheckStyle

    检查源文件
主要关注格式
检查Java源文件是否与代码规范相符     主要包括:
Javadoc注释
命名规范
多余没用的Imports
Size度量,如过长的方法
缺少必要的空格Whitespace
重复代码     过于严格
按照Sun的规范太严格了,需要自定义规则
插件自定义规则没有查找功能,查找规则麻烦
只能做检查,不能修改代码,可配合Jalopy使用修改代码



Checkstyle插件中默认内置有2个执行代码检查的配置文件:Sun Checks、Sun Checks(Eclipse)。但是这两个文件检查的非常详细,即使优秀的开源项目也会检查出来有非常多的错误告信息,所以需要导入我们自己编写的配置文件。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0