在C/C++下强烈推荐 CCM ,优点如下:
- 配置文件是类xml格式,参数很少,非常容易配置
- 可以按目录、文件、函数来设置排除项,对有些函数来说,比如switch下有多个case而且每个case的逻辑都非常简单,可读性本身就很高的情况下可以直接排除
- 可以设置只统计 top N 的函数,一般我设置 top 30,圈复杂度的度量只需要关注最高的这部分函数就可以,识别出来并重构,然后看新的 top 30……
- 有 Jenkins 插件,很容易集成到 CI 中
最大的缺点是只能在windows下使用,不能跨平台……
有一些圈复杂度的工具,我觉得不太好,不知道作者为什么要这么设计功能,比如:
-
统计类/包的复杂度
完全没有必要,圈复杂度的定义就是针对函数的,统计类或者包的圈复杂度没有任何意义 -
统计新增代码的复杂度
逻辑是已经写好的代码就不管了,新增的代码要求高一点,不能理解
网友评论