最近我正在寻找最好的代码检查工具集.我的IDE是Intellij 15.0,我知道那里有很好的检查功能,但是当我查看互联网时,我没有找到Intellij内置检查代码和那三个之间的良好比较.试过它们的人是否可以提供一些最佳实践?Intellij是否涵盖所有这些?
我知道findbugs以二进制级别运行但仍然让它保持比较.
在Checkstyle项目本身,我们使用所有这些工具:Checkstyle,PMD,FindBugs和IntelliJ IDEA检查.
以下是我的观察:
Checkstyle在格式化,空格,大括号放置,Javadoc和通用代码样式方面没有替代品.IntelliJ在命名和一些不良做法方面存在一些重叠,但就是这样.
PMD规则与IntelliJ的规则非常相似.这两种工具主要用于检测典型错误或不良做法.您仍会找到一些独特的有用PMD规则,只是一些随机示例:BigIntegerInstantiation,CommentDefaultAccessModifier,SingletonClassReturningNewInstance.
我绝不会从FindBugs辞职而转而使用其他工具.FindBugs专注于在低代码误报率的代码中发现真正的错误.通常,它几乎不需要任何配置 - 只需启用所有规则并确保睡眠安全.当然与IntelliJ有一些重叠,但检测到的bug越多越好.
IntelliJ IDEA检查是一个很好的工具,因为它们包含许多独特而可靠的规则.而且它不仅是Java - 您可以开箱即用地检测XML,属性,SQL,Spring,HTML,CSS等问题.它们需要大量配置并选择正确的规则集.启用所有规则将在每个较大的项目上报告数十万次违规.并且很难将这些检查嵌入到Maven或Gradle构建中,以便项目可以自我验证.
我的建议是使用所有这些工具,因为每个工具都包含至少十二个(有时十几个)有用的检查,这些检查在其他任何地方都无法使用.