关注代码质量是高效开发必须要做的一件事,那么在 Ruby 开发的过程中,是否有什么好的代码质量检测工具呢?下面由 Ruby 工程师路英瑞介绍一下 RubyCritic——一款还不错的代码质量检测工具。
最近在开发 Cloud Insight API(一款能够优雅监控多种操作系统、数据库、中间件、云主机的解决方案) 时,发现一个可以检测 Ruby 代码质量的工具-RubyCritic。
RubyCritic 集成 Reek, Flay 和 Flog 这3个分析代码的工具,能够对你的 Ruby 代码进行静态分析并生成质量报告。
功能介绍
- 可以总览项目,并且可以对代码打分(百分制).
2.根据各自的坏味道数量建立文件索引
对不同文件按照改动频率、复杂度、重复度和坏味道4个维度进行综合评定代码质量等级。
3.可以查看具体的类文件中的代码质量问题
用法
看一下rubycritic(2.7.0)
指令:
rubycritic --help
Usage: rubycritic [options] [paths]}
-p, --path [PATH] | 设置质量报告存放的路径(默认: tmp/rubycritic) |
-f, --format [FORMAT] | 设置报告格式: html (默认) json console |
-s, --minimum-score [MIN_SCORE] | 设置最小分数 |
-m, --mode-ci | 使用 CI 模式(更快,但仅分析最后一次提交) |
--deduplicate-symlinks | 基于最后目标去除重复的符号链接 |
--no-browser | 不使用浏览器打开html格式的报告 |
--suppress-ratings | 压制质量评级 |
-v, --version | 显示版本号 |
-h, --help | 显示帮助信息 |
运行bundle exec ruby critic
的效果如下图:
从上图也能看出 Rubycritic 分析代码流程。
其他用法
平时使用 guard 工具的同学, 可以使用guard-rubycritic
, 代码改动时会自动分析你的代码。有兴趣的同学也可以将它集成到 Jenkins CI。
扩展功能
在使用 Rubycritic 过程中, 每次都要手动打开浏览器进行查看质量报告,太麻烦了。于是给它添加一个功能:
目前仅支持 Linux 和 Mac OS X 系统:
- 支持 Linux 浏览器: Firefox(默认)、Chrome 和 Chromium
- 支持 Mac OS X 浏览器: Safari(默认)、Chrome 和 Firefox
运行步骤
修改 Gemfile
gem 'rubycritic', github: 'superiorlu/rubycritic', branch: 'open_with_browser'
运行rubycritic -O chrome
即可。
总结
本文简单介绍了 rubycritic 和用法, 可能某些知识点会有所遗漏,不足之处请大家指正。
*更新(2016.01.29)
目前 ruby critic 已经更新到了 2.7.0, 已经默认使用浏览器打开 html 格式的报告了。* :)
**本文系国内 ITOM 行业领军企业 OneAPM Ruby Agent (Ruby 应用性能监控神器)工程师路英瑞原创,转自路英瑞简书。