关于Cyclomatic Complexity的这个问题使我更多地考虑静态代码分析.分析代码复杂性和一致性偶尔会有用,我想开始做更多.您推荐哪些工具(按语言)进行此类分析? 维基百科有很多工具,但以前有人试过哪些工具?
编辑:正如David所指出的,当涉及到基于C/UNIX的工具时,这不是一个完全没有问题的问题.
我已经为我的Objective-C iPhone项目(iOS应用程序)建立了一个Hudson持续集成(CI)构建系统,并编译了一系列可用于在构建期间分析我的项目的工具:
Clang静态分析器:免费的,最新的独立工具,比Xcode 4附带的Clang版本捕获更多问题.活动项目.- 访问http://clang-analyzer.llvm.org
Doxygen:免费的文档生成工具,它也生成类依赖关系图.活跃项目 - 访问http://www.doxygen.nl
HFCCA(无标题圈复杂度分析器):免费的Python脚本来计算代码复杂性,但没有头文件和预处理器.支持Hudson/Jenkins构建的XML格式输出.活跃的项目.- 访问http://code.google.com/p/headerfile-free-cyclomatic-complexity-analyzer
CLOC(计算代码行):用于计算文件,代码行,注释和空行的免费工具.支持diffing,因此您可以看到构建之间的差异.活跃的项目.- 访问http://cloc.sourceforge.net
SLOCcount(代码计数源代码行):一种免费工具,用于计算代码行数并估算与项目相关的成本和时间.似乎没有活动.- 访问http://sourceforge.net/projects/sloccount和http://www.dwheeler.com/sloccount
AnalysisTool:免费代码分析工具,可测量代码复杂性并生成依赖关系图.不活跃.似乎不适用于Xcode 4,但我很想让它工作.- 访问http://www.karppinen.fi/analysistool
对于C和Objective-C,您还可以使用LLVM/Clang 静态分析器.
它是开源的,并且正在积极开发中.
对于.Net,我们使用NDepend.它是一个很棒的工具,可以集成到构建中(我们使用CCNet).
http://www.ndepend.com/
HTH.