圈复杂度评价及工具

圈复杂度用来评价代码复杂度,以函数为单位,数值越大表示代码的逻辑分支越多,理解起来也更复杂。圈复杂度可以成为编码及重构的重要参考指标,以指导撰写可读性高的代码。有关圈复杂度的定义,可以自行搜索。《代码大全》有如下的定义:

计算子程序中决策点数量的技术(代码大全2,19章P458)

1.1数,一直往下通程序。

2.一旦遇到以下关字,或者其同类的词,就加1:

if, while, repeat, for, and, or

3. 给case(switch)语句中的每一种情况都加1.


作者也给了处理复杂度度量结果的建议:

0-5: 子程序可能还不错

6-20: 得想办法简化子程序了

10+ 把子程序的某一部分拆分成另一个子程序并调用它。

这些数字和策略都不是绝对的,正如作者所言至少应当视其为警示。


也有工具可以帮我们完成复杂度的统计工作:cyclo (支持C/C++)

– http://maultech.com/chrislott/resources/cmetrics/
对Windows平台,可以使用MinGW编译。

使用时,指定要进行统计的文件就可以了。

你可能感兴趣的:(圈复杂度评价及工具)