首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

Ruby code 品质分析工具(1)

2012-08-21 
Ruby code 质量分析工具(1)Saikuro 是一款用来计算圈复杂度的code质量工具。http://saikuro.rubyforge.org/

Ruby code 质量分析工具(1)
Saikuro 是一款用来计算圈复杂度的code质量工具。http://saikuro.rubyforge.org/
圈复杂度“用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系”。

圈复杂度的作者在这篇文章中有关于圈复杂度的详细介绍:http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/sttoc.htm

Saikuro 使用了一种比较简单的圈复杂度计算方法。函数的复杂度等于所有的判断点的数量的和。
每个方法的起始复杂度为1。以下情况复杂度加1:
1. 判断 / 循环
2. 异常处理
3. block

另外对于逻辑判读式 目前不统计复杂度,虽然作者的文中认为需要。

命令使用方式:
例1:saikuro -c -p test.rb

例2:saikuro -c -t app -y 0 -w 11 -e 16 -o out/

-c -t 表示分析 app/目录下的文件
-y 0 表示返回所有方法的复杂度
-w 11 表示复杂度>=11的给warning
-e 16 表示复杂度>=16的给error


个人见解(经供参考):
好处:
函数代码变简单易读,可维护性增强。

坏处:
函数调用栈变深,debug的时候走了很远还没有找到自己想要的
对函数命名的要求更高,函数封装了,但命名不正确可能导致一些不好的后果,例如被误用

热点排行