代码分析工具FindBugs

本文介绍了由马里兰大学Bill Pugh教授开发的FindBugs,这是一个开源的静态代码分析工具,用于查找Java代码中的常见缺陷。详细解释了如何在新模块代码审查和已有代码审查中应用该工具,以及新版本中添加的12个检测器的作用。此外,介绍了FindBugs与Eclipse插件的整合,帮助开发者更高效地进行代码审查。

由马里兰大学Bill Pugh教授开发的FindBugs是一个开源的(LGPL)静态代码分析工具(无需运行就能对代码进行分析的工具),目的是找出Java代码中的常见缺陷。
开发者可以通过多种方式来使用静态代码分析工具,最常见的两个使用场景分别是在新编写模块的代码审查上以及对现有代码进行更大范围的审查上。这两个使用场景其实是有很大区别的。对于前一种情况,开发者通常会检查工具所发现的有疑问的代码,然后去修改代码(即便这个问题对应用本身并没有什么影响时也是如此)。与此相反,在审查已有代码时,由于代码已经处于产品阶段且并没有造成什么明显的问题,开发者在修改之前需要先熟悉一下代码,因此其修改代价就很高了。

FindBugs分析引擎一直在持续地改进,同时在新的1.3.9版中还添加了12个新的检测器。这12个新的检测器是:

* BC_IMPOSSIBLE_DOWNCAST
* BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY
* EC_INCOMPATIBLE_ARRAY_COMPARE
* JLM_JSR166_UTILCONCURRENT_MONITORENTER
* LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE
* NP_CLOSING_NULL
* RC_REF_COMPARISON_BAD_PRACTICE
* RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN
* RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED
* SIC_THREADLOCAL_DEADLY_EMBRACE
* UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR
* VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED

这些检测器的说明可参看官方网站http://findbugs.sourceforge.net/bugDescriptions.html

自从1.3.9之后FindBugs就开始重点解决第二种情况了。比如说,FindBugs总是将每一种bug模式划分到某个类别中,如正确性、最差实践、性能与国际化等,然后为其指定高、中、低优先级。对于开发者来说,可以通过这种方式从庞大的代码中过滤掉那些不重要的缺陷。

同时FindBugs还提供Eclipse插件,可以同开发环境整合起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值