RubyCritic:一款不错的检测代码质量工具
关注代码质量是高效开发必须要做的一件事,那么在 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 应用性能监控神器)工程师路英瑞原创,转自路英瑞简书。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
RubyCritic:一款不错的检测代码质量工具的更多相关文章
- 推荐五款优秀的PHP代码重构工具
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮 ...
- JSLint是一个JavaScript的代码质量工具
JSLint是一个JavaScript的代码质量工具 可能都或多或少的知道JSLint是一个JavaScript的代码质量工具,一个JavaScript语法检查器和校验器,它能分析JavaScript ...
- LINUX下一款不错的网站压力测试工具webbench
LINUX下一款不错的网站压力测试工具webbench 分类: Linux 2014-07-03 09:10 220人阅读 评论(0) 收藏 举报 [html] view plaincopy wget ...
- 九款常用的JS代码高亮工具
代码高亮很重要,特别是当我们想要在网站或博客中展示我们的代码的时候.通过在网站或博客中启用代码高亮,读者更方便的读取代码块. 有很多免费而且有用的代码高亮脚本.这些脚本大部分由Javascripts编 ...
- 使用 Sonar 检测代码质量
经历了一段时间的加班赶项目进度之后,今天终于闲下来了.忽然不知道干啥.于是,想着做点什么吧.突然想起了码云上面有个代码分析的功能,用的是 Sonar 于是想来玩玩这个. 一.下载Sonar,和初始化, ...
- 个人分享:平时开发中感觉几款不错 IDE 、插件、工具
本人主业 C# 开发,由于是做 Web 开发,所以像 SQL.JavaScript 这些肯定经常要接触到.当然,平时本人也写过 Node.js.Java.Python之类,不过,这些只能讲简单了解而已 ...
- 找到一款不错的网站压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: 引用 wget htt ...
- 【转】LINUX下一款不错的网站压力测试工具webbench
原文链接:http://blog.csdn.net/xinqingch/article/details/8618704 安装: wget http://blog.s135.com/soft/linux ...
- 两款不错的Linux密码生成工具
先介绍最简单的方法,Linux自带的 $ strings /dev/urandom | | ; echo whucNWhr35W6ZP0MxrLQ $ /dev/random | base64 | t ...
随机推荐
- HTML5吧!少年
一.为了能使IE9以下的IE浏览器也能支持html5的标签,所以首先得在文档头部用条件注释的方法引入那段著名的代码. 1 2 3 <!--[if lt IE 9]> <script ...
- rs.open sql,conn,3,1中3,1代表什么
RecordSet中的open完全的语法是 SecordSet.Open Source,ActiveConnection,CursorType,LockType,Options 例如: rs.open ...
- ### MATLAB - CUDA
MATLAB下使用CUDA. #@author: gr #@date: 2014-04-08 #@email: forgerui@gmail.com 一. Matlab & C 1. 概念 M ...
- CStdioFile 写文件
前言: 介绍如何使用 CStdioFile 类去写文件. 完整工程代码,点我下载(请注意工程里面需要包含的 <locale.h>头文件 ) 示例: /// My Add // 获取当前路径 ...
- 【转载】C/C++之回调函数
[转载地址]:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 在理解“回调函数”之前,首先讨论下函 ...
- ERROR ITMS-90049错误解决
检查一下项目有集成友盟,shareSDK这种第三方包,里面有个腾讯bundle,包含了一个Info.plist. 去掉,就可以了.类似有其他第三方的bundle,可能也会出现这个问题. 原因估计是Ap ...
- ios 经典错误
1 - [person test]:unrecognized selector sent to instance. 给penson对象发送一个不能识别的消息:test 2 set/get方法死循环 ...
- 02线性表链式存储_LinkList--(线性表)
#include "stdio.h" #include "string.h" #include "ctype.h" #include &qu ...
- Mysql的联合查询
联合查询 union联合查询 语法: select 语句 union [all|distinct] select 语句; 示例: 特点: 条件:两表的查询出来的字段数目必须相同 ...
- 2017 google Round C APAC Test 题解
题解参考网上的答案,以及我自己的想法. 主要参考网站:http://codeforces.com/blog/entry/47181,http://codeforces.com/blog/entry/4 ...