InfoQ

新闻

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

作者 Mirko Stocker 译者 杨晨 发布于 2009年11月10日 下午6时55分

社区
Ruby
主题
代码分析
标签
统计,
代码质量,
测试,
metric_fu,
静态分析

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

深度内容

张文钿谈Rails开发及台湾Ruby社区

在去年10月份的Kungfurails大会上,InfoQ中文站有幸采访了从台湾专程赶过来的张文钿,与他探讨了关于台湾Ruby社区的发展、Rails的商业化,Restful Design等话题。

Scrum与策略

如果Scrum只关乎短期行为,战略人士又该如何去适应这种生态系统呢?更重要的是,它如何帮助企业领导人做出并且履行重要的承诺?

书评:《代码之道》

《代码之道》以一位微软内部人士的视角,揭示了关于软件编码、软件测试和项目管理的残酷现实。针对每一个话题,I.M.Wright都根据丰富的工作经验提出了自己的观点,并介绍了来龙去脉,令人信服。

洪强宁谈豆瓣网技术架构

如何应对高并发、大访问量?如何保证数据的安全性以及数据库大吞吐量?在海量数据下,如何进行数据表变更?DoubanFS以及DoubanDB的特点以及技术实现?在QConBeijing 2009期间,InfoQ中文站有幸采访了洪强宁,探讨了相关话题。

淘宝网架构师岳旭强的年度展望

淘宝网资深架构师岳旭强结合自己的实际工作,从数据扩展性、关注系统和人的交互,以及关注可用性等方面做了总结和展望。

大型团队中的敏捷开发

在1月份举办的Scrum敏捷实战营中,钟鸣从微软研发团队敏捷开发的最佳实践角度与大家探讨了大型团队中的敏捷开发。

Richard Durnall谈系统管理和从外向内的组织结构

敏捷极限编程、精益软件开发及在线产品开发专家Richard Durnall谈对系统管理理论的理解和应用,以及从外向内的组织结构策略。

SOA设计模式,第二部分

SOA设计模式:兼容性变更,版本标识,终止通告,服务重构,服务分解,代理功能,分解的功能和分布式功能。