使用 Caliper 度量 Ruby 代码的规范程度

  • Mirko Stocker
  • 杨晨

2009 年 11 月 10 日

话题:Ruby测试语言 & 开发架构文化 & 方法

Caliper为 Ruby 项目提供了制式标准评价,其使用可以说是再简单不过了:仅仅是将 Caliper 指向你的 Git 库,等几分钟吧,然后看看你的代码合不合符制式标准。

Caliper 是免费的服务,由 Devver 提供,这个公司以其测试加速程序(参考 InfoQ 上的Faster Ruby Test Execution With Devver)而闻名。各类的标准的计算是由metric_fu完成的,它一次使用类似于Roodi(对设计问题发出警告)和Saikuro(一个循环复杂度分析器)。Caliper 将这些数据聚集起来,分析之后提供一个很完整漂亮的概述。例如,看看Sinatra的分析报告。

Devver 的 Benjamin Brinckerhoff 告诉我们,他们准备加入更多的标准测试:

我们还不完全肯定我们将会加入哪些测试。这主要看我们从用户得到的反馈。现在有一些想法:

  • Towelie,和 Flay 很类似,用来度量代码冗余。
  • rcov,已经包含在 metric_fu,但是 Caliper 现在还不支持。
  • Railroad,类范图生成器。
  • TODO 探测器,查看哪些文件的 TODO 最多(或者其他的程序员做的标记)。具体的字符串可以自定义,我们希望能够自己编写这个程序(这个应该是相当容易)。
当我们添加这些工具的时候,我们也计划将其加入 metric_fu 中(如果 metric_fu 团队允许这么做的话,那就太好了!)。同时,我们也正在努力地是现有的 metric_fu 数据更加易于理解和使用。

仅仅计算是否符合标准是不够的,代码还应该能够在以后被重构。Devver 的博客上展示了 Caliper 的标准是如何用来改善其代码库。Caliper 也能够和其他的服务通过提交确认回调(Post-commit Hooks)的方式集成在一起,例如GitHubrdoc.info

这个服务对于开源项目来说是免费的,如果在私人项目中使用则需要支付相应的费用。

查看英文原文:Metrics for Ruby With Caliper

Ruby测试语言 & 开发架构文化 & 方法