QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:372046
用户头像

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

关注

评论

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

Kafka SASL 用户认证机制

spacerrobot

kafka 认证授权 SASL SCRAM JAAS

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

flyzz177

React

防患未然 | AIRIOT城市管廊智能运维解决方案

AIRIOT

低代码 物联网 智慧管廊

Zebec流支付生态,开启多链布局的“两手准备”

股市老人

基于OpenHarmony的ArkUI框架进阶对于高性能容器类和持久化和原子化的运用

恒山其若陋兮

前端 11月月更

【web 开发基础】PHP 中的默认(缺省)参数的函数 (33)

迷彩

缺省参数 函数 web开发基础 11月月更 默认参数

深入React源码揭开渲染更新流程的面纱

goClient1992

React

week6作业 - 拆分电商系统为微服务

in9

【愚公系列】2022年11月 微信小程序-页面间通信

愚公搬代码

11月月更

架构实战营模块 6 作业

陌生流云

架构实战营

【个人成长】《代码的艺术》视频分享合集

非晓为骁

职业规划 开发 软件工程能力 代码的艺术

2022年第三季度泛出行行业洞察:泛出行行业正在经历数智化升级的关键时期,用户规模保持平稳增长,行业整体良性发展

易观分析

数智化 泛出行

K8S环境的Jenkin性能问题处理续篇(任务Pod设置)

程序员欣宸

Kubernetes jenkins 11月月更

手写一个react,看透react运行机制

goClient1992

React

什么是CI/CD

穿过生命散发芬芳

CI/CD 11月月更

2022-11-23: 分数排名。输出结果和表的sql如下。请写出输出结果的sql语句? +-------+------+ | score | rank | +-------+------+ | 4.

福大大架构师每日一题

数据库 福大大

【活动回顾】Apps Everywhere 上海站圆满结束

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

C++---类型萃取---std::remove_cv/std::remove_cv

桑榆

C++ STL 11月月更

Jan Ozer:高清直播互动场景下的硬编码如何选型?

声网

人工智能 编码 视频

【web 开发基础】PHP中的引用参数的函数 (32)

迷彩

web开发基础 11月月更 引用传递 引用参数函数 值传递

Linux 忘记密码解决方法

芯动大师

Linux线程 11月月更 Linux系统

API关键技术-日志审计技术

阿泽🧸

日志审计 11月月更

【web 开发基础】PHP中的伪类型参数的函数 (31)

迷彩

函数 web开发基础 11月月更 伪类型参数函数 伪类型

对于基于鸿蒙系统的应用支持多语言Arkui框架的线性容器类和PieChart的研究实战

恒山其若陋兮

前端 11月月更

如何搭建 SaaS 产品的客户服务体系

产品海豚湾

SaaS平台 B端产品 SaaS 产品 11月月更 客户成功

软件测试之 Contract Testing

QE_LAB

契约测试 测试技术

微信小程序开发在全局配置和资源加载优化在获取接口上的节点信息实战

恒山其若陋兮

前端 11月月更

自动化测试成熟度模型

老张

DevOps 自动化测试

带你实现react源码的核心功能

goClient1992

React

react的useState源码分析

flyzz177

React

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