關注代碼品質是高效開發必須要做的一件事,那麼在 ruby 開發的過程中,是否有什麼好的代碼品質檢測工具呢?下面由 ruby 工程師路英瑞介紹一下 rubycritic——一款還不錯的代碼品質檢測工具。
最近在開發 cloud insight api(一款能夠優雅監控多種作業系統、資料庫、中間件、雲主機的解決方案) 時,發現一個可以檢測 ruby 代碼品質的工具-rubycritic。
rubycritic 內建 reek, flay 和 flog 這3個分析代碼的工具,能夠對你的 ruby 代碼進行靜态分析并生成品質報告。
可以總覽項目,并且可以對代碼打分(百分制).

2.根據各自的壞味道數量建立檔案索引
對不同檔案按照改動頻率、複雜度、重複度和壞味道4個次元進行綜合評定代碼品質等級。
3.可以檢視具體的類檔案中的代碼品質問題
看一下<code>rubycritic(2.7.0)</code>指令:
-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
顯示幫助資訊
運作<code>bundle exec ruby critic</code>的效果如下圖:
從上圖也能看出 rubycritic 分析代碼流程。
平時使用 guard 工具的同學, 可以使用<code>guard-rubycritic</code>, 代碼改動時會自動分析你的代碼。有興趣的同學也可以将它內建到 jenkins ci。
在使用 rubycritic 過程中, 每次都要手動打開浏覽器進行檢視品質報告,太麻煩了。于是給它添加一個功能:
目前僅支援 linux 和 mac os x 系統:
支援 linux 浏覽器: firefox(預設)、chrome 和 chromium
支援 mac os x 浏覽器: safari(預設)、chrome 和 firefox
修改 gemfile
運作<code>rubycritic -o chrome</code>即可。
點此閱讀源代碼
本文簡單介紹了 rubycritic 和用法, 可能某些知識點會有所遺漏,不足之處請大家指正。
*更新(2016.01.29)
目前 ruby critic 已經更新到了 2.7.0, 已經預設使用浏覽器打開 html 格式的報告了。* :)
**本文系國内 itom 行業領軍企業 oneapm ruby agent (ruby 應用性能監控神器)工程師路英瑞原創,轉自路英瑞簡書。