Ruby code 质量分析工具(1)_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Ruby code 质量分析工具(1)

Ruby code 质量分析工具(1)

 2012/6/11 0:13:11  l_yan  程序员俱乐部  我要评论(0)
  • 摘要:Saikuro是一款用来计算圈复杂度的code质量工具。http://saikuro.rubyforge.org/圈复杂度“用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系”。圈复杂度的作者在这篇文章中有关于圈复杂度的详细介绍:http://hissa.nist
  • 标签:Ruby 工具 分析
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的时候走了很远还没有找到自己想要的
对函数命名的要求更高,函数封装了,但命名不正确可能导致一些不好的后果,例如被误用
发表评论
用户名: 匿名