65
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsで便利なコード静的解析Gem rubycritic (所要時間3分)

Last updated at Posted at 2016-07-12

GYAOの窓際エンジニア 玉利です。
最近は日本のPJが大変で、ベトナム側もJavascript絡みの問題が出たりして無事死亡しております。

今の時期、日本がくっそ暑くなるタイミングでベトナムに行きたいところです。日本の夏はベトナムより暑くてインド並です(知人談) この時期のホーチミンは、太陽が北にあって(北回帰線の南側にあります)、風が涼しくてものすごく過ごしやすいんです。そして海鮮とビールをガツンと。

スクリーンショット_2016_07_12_9_52.png

さて、いままでいろいろ品質管理の仕組みを頑張ってきました。ベトナムにかぎらずオフショアすると仕様を決めるのが精一杯で、QAを日本でやったらコストで足が出るし、QAを現地スタッフにお願いしてもザルなのは目に見えてます。労働集約型産業だったら駐在出す理由もあるのですが、知識集約だと日本で優秀な人間を取ったほうが結果安い、ということになりかねません。

今日紹介するのは、あまり日本ではメジャーじゃないrubycriticです。同様のものにrubocopがあります。海外記事では比較して語られていましたが、私は併用するべき有用なgemだと思っています。

特に悪さをすることも無さそうなので、さくっと入れてあげましょう。所要時間3分です。

Gemfile

group :development do
  gem "rubycritic", :require => false
end

bundle installしたら、コマンドラインからrubucriticを起動します。

$ ruby critic

Gemfile_-Che-GYAO-___RubymineProjects_Che-GYAO.png

実行が終わると、ブラウザが立ち上がって結果が出力されます。

RubyCritic.png

Churn(チャーン)は「激しい動き」 Complexityは複雑度です。
だいたい、品質は揃ってるみたいですが、飛んでるデータが有りますね。

スクリーンショット 2016-07-12 9.33.25.png

ポイントにマウスカーソルをあてると統計タブがでます。

では、Codeのタブを叩いてみましょう。

RubyCritic.png

各コントローラー毎の複雑度、重複、匂い(癖)がでます。画面サンプルのFってのはやばそうですね。

RubyCritic.png

あー、コピペしたコードを引っ掛けられてしまいました。どっかのヘルパーに移動しないといけません。

ベトナム人に、ここおかしいよって教えてあげるのは骨が折れる作業なので、こういうツールで検出してから自分たちで直させるのがベストな手法だと思ってます。

65
53
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?