虽然圈复杂度是一个值得指标,我倾向于认为它是识别难以维护的代码很糟糕的工具。 特别是,我倾向于认为它只是强调了某些类型的代码(例如解析器)和惦记困难递归,线程和耦合问题以及许多已定义的反模式。
其他什么工具可用来识别有问题的Java代码?
请注意,我们已经使用PMD和FindBugs的,我相信是伟大的方法级别的确定问题。
虽然圈复杂度是一个值得指标,我倾向于认为它是识别难以维护的代码很糟糕的工具。 特别是,我倾向于认为它只是强调了某些类型的代码(例如解析器)和惦记困难递归,线程和耦合问题以及许多已定义的反模式。
其他什么工具可用来识别有问题的Java代码?
请注意,我们已经使用PMD和FindBugs的,我相信是伟大的方法级别的确定问题。
我的经验是,在看代码的可维护性时最重要的指标是:
当检查被写入别人的代码,它往往是有用的,包括动态技术。 只需通过一个分析器/代码覆盖工具运行常见的使用场景,发现:
通常的嫌疑人,如任何分析器,代码覆盖和度量工具通常会帮助你获得做这些评估所需要的数据。
谷歌浏览器可测性检查,例如为单身人士和其他静态东西是设计不好的气味。 指标是衡量人类已知的几乎每一个代码度量一个Eclipse插件。 我使用,并且能够很容易地推荐两种。
声纳试图识别的复杂性和可维护性的“热点”相结合的各种开源工具(包括PMD和FindBugs的)结果。 它与Maven和CI服务器(尤其是哈德森)很好地集成。
编辑由extraneon
有一个声纳部位可用的地方很多开源项目进行了分析。 我认为,这显示相当不错的规则做了多少应用,以及在多大程度上向下钻取去。 你当然也可以禁用规则,你不觉得很有趣。
这里是指标的解释。
我从来没有使用过,但我发现这相当有趣和promissing:
http://erik.doernenburg.com/2008/11/how-toxic-is-your-code/
我用这一个,并发现它非常有用的,因为依赖的不错的可视化
http://www.headwaysoftware.com/products/structure101/index.php
你已经在使用静态分析工具是相当标准。 如果你正在使用Eclipse,尝试寻找这里更多的代码分析工具。
艾玛提供了代码覆盖分析,虽然这是真正的测试。
该工具NDepend的用于.NET代码将让你对代码进行分析的复杂性,在许多方面,包括代码度量,如:圈复杂度,嵌套深度,缺乏方法的凝聚力,通过测试覆盖率...
......包括依赖性分析,包括了LINQ查询编码规则(CQLinq)致力于问,什么是复杂的在我的代码,并写入规则。 大约200默认编码规则设置。 他们关注的反模式,如单身 ,检测线程问题 ,检测的耦合问题,如UI层不应直接使用DB类型 ...
前阵子,我写了一篇文章,总结代码复杂度几个方面: 打击捏造复杂性