仕事でrubocopを入れている
サクサク描いてるとABCに引っかかることが多い(現状の閾値はデフォルトの15)
さっと調べてみたところそれぞれ
- a(assignment): 代入の回数
- b(blanch): メソッド呼び出しの回数
- c(condition): 分岐の回数
で下記の計算で算出しているらしい(versionは現時点で0.54)
Math.sqrt(a**2 + b**2 + c**2).round(2)
rubocop/abc_size.rb at master · bbatsov/rubocop
で警告が出れば消したくなるのが人間ってものなので頑張って警告が出ないようにしようとするわけですね
ただ今のrubocopの出力だとそれっぽいなと思うところを削ってもう一度確認してみたいな結構面倒なことをするしかなかった
ストレスが溜まってきたのでgemをのぞいたら割と簡単にそれぞれ何回マッチしてるかの数値を出すことができました
これでどこ削るのが一番削れるか、コード中のどの記述がどのくらい寄与しているのかっていうのがわかりやすくなったはず
まぁあんまり良さそうな修正じゃない気がするのでとりあえずforkしてブランチ切って上げるところまでして自分用に使ってみてます
そもそもあんまりABCを意識しすぎて可読性を下げるのも本末転倒なのでバランスみて閾値上げるとかチームで話し合いが必要ですね