写点什么

Ruby 静态分析工具检视:metric_fu, Simian, Saikuro 以及其他

  • 2009-09-16
  • 本文字数:686 字

    阅读完需:约 2 分钟

代码质量构成了软件质量的一部分。像 Java 和 C++ 之类主流语言的工具已经比较成熟了,而 Ruby 相关工具还在成长。随着 Ruby 从早期采纳者向早期大众普及,人们对这些工具的需求越来越多,而且 SLOC(源代码行数)在不断增长。人们使用自动化工具检测多种问题,比如风格不一致、方法过程和代码重复。

Steve Hayes 在芝加哥举办的 Agile2009 大会上做了一个名为“Java 和 Ruby 的代码质量”的演讲。InfoQ 也借此机会审视了 Ruby 世界中可为人所用的工具。

  • ** Roodi (Ruby 面向对象设计 Inferometer)——** 该工具会解析你的 Ruby 代码,并根据你配置好的列表,对设计方面的问题提出警告,比如:类代码行数检查、for 循环检查、参数个数检查、圈复杂度检查,还有其他 10 个检查选项。
  • Reek ——类似 Roodi。
  • Saikuro ——设计目的是要检查圈复杂度
  • Flog ——由 Ryan Davis 开发,它会给你的代码计算一个得分:得分越高,你的代码越差。计算得分时考虑了 ABC 度量指标(赋值、分支和调用)。
  • Simian ——类似的分析器,可以用来识别代码重复(要想商用,就得付出 99 美元)。
  • Flay ——这是 Ryan Davis 开发的另一个免费工具,能够找到代码中在结构上的相似性。

要想使用所有这些工具,你很快就会觉得痛苦,这时 metric_fu 就成了救星。它包括了上述所有工具(Simian 除外),而且能够方便地生成关于你的应用的报告。很容易就能把它和 Rails 集成在一起,而且花些时间就能生成图表。


_ 来自 Jakes Scruggs _ 的图表。

您可以根据 Assaf Arkin 的指导来为Rails 项目设置Hudson,同时带有metric_fu 支持

查看英文原文: Ruby Static Analysis Tools Roundup: metric_fu, Simian, Saikuro and More

2009-09-16 09:372399
用户头像

发布了 479 篇内容, 共 180.0 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

改变线程状态的方法

急需上岸的小谢

10月月更

让Jenkins执行GitHub上的pipeline脚本

程序员欣宸

GitHub jenkins 10月月更

【一Go到底】第十九天---init函数、匿名函数

指剑

Go golang 10月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

华为云从入门到实战 | 云速建站服务与企业主机安全服务

TiAmo

华为 华为云 云开发 10月月更

数据湖(四):Hudi与Spark整合

Lansonli

Hudi 10月月更

前端关于面试你可能需要收集的面试题

loveX001

JavaScript

React面试八股文(第二期)

beifeng1996

React

react源码分析:babel如何解析jsx

flyzz177

React

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

DS小龙哥

10月月更

掌握这个方法,让工作经验配得上工作时间!

博文视点Broadview

js异步编程面试题你能答上来几道

loveX001

JavaScript

React源码分析2-深入理解fiber

goClient1992

React

React源码分析1-jsx转换及React.createElement

goClient1992

React

HashMap源码分析(一)

知识浅谈

hashmap 10月月更

无法吃午餐的学生数量

掘金安东尼

算法 10月月更

CEF | CEF浏览器客户端功能扩展:实现前进、后退、刷新、调用控制台、设置cookie、网页自适应窗体大小

YOLO.

qt 10月月更 C++

一种基于柔性事务的分布式事务解决方案设计探究

京东科技开发者

分布式事务 事务 分布式架构 事务回滚 分布式处理

CorelDRAW 2019 软件应用项目(五)

张立梵

设计师 CorelDRAW 2022 10月月更

CorelDRAW 2019 软件应用项目(六)

张立梵

设计师 CorelDRAW 2022 10月月更

CEF | CEF浏览器客户端功能扩展:实现下载列表功能

YOLO.

qt 10月月更 C++

C++中变化布局实现思路

中国好公民st

c++ 布局 10月月更

谈谈spark性能调优的方法

芥末拌个饭吧

spark 后端 10月月更

Linux下RTC驱动开发(硬件采用DS1302)

DS小龙哥

10月月更

react源码分析:组件的创建和更新

flyzz177

React

Linux下IIC驱动编写,介绍IIC子系统框架的使用

DS小龙哥

10月月更

Redis是如何保证数据一致性的

芥末拌个饭吧

后端 redis 底层原理 10月月更

2022年ArchSummit全球架构师峰会杭州站感想

谙忆

ArchSummit 飞链云 架构师峰会

Linux下驱动开发_块设备驱动开发(内存模拟存储)

DS小龙哥

10月月更

React组件之间的通信方式总结(下)

beifeng1996

React

React组件之间的通信方式总结(上)

beifeng1996

React

Ruby静态分析工具检视:metric_fu, Simian, Saikuro以及其他_研发效能_Sebastien Auvray_InfoQ精选文章