ブログ

読んで思い出す。忘れるために書く

Code Climate で Ruby コードの複雑さを可視化する

Code Climate

Code Climate というサービスがある

対応する言語

そのほかにも C#, Scala, Kotlin に今後対応していくらしい

(Supported Languages for Maintainability)

機能

メンテナンス性の解析

GitHub リポジトリと連携して コードを解析し、その重複の有無や複雑さ (≒キレイさ/汚さ)を測定してくれるというもの

メンテナンス性の指標として 高い順に A, B, C, D... とアルファベット順で評価される (A から F まで : Maintainability)

このメンテナンス性の指標は継続的に記録されていて、「このファイルはメンテナンス性が D から A に変わったよ」といった状態の変化を見ていく事が出来る (Progress)

f:id:innocent-zero:20180807114857p:plain

そのほかの解析・機能

そのほかにも

  • コードディングスタイルに従っているか
  • 脆弱性を生むコードを書いていないか
  • バグを生み出しやすい "臭う" コードを書いていないか
  • いまのテストコード カバレッジはどれくらいか

といったことを解析してくれる (それぞれ Rubocop, Brakeman, Reek, simplecov との連携)

このメンテナンス性の解析といった領分について、GitHub Pull Request 内では; レビューコメントを書く (GitHub Pull Requests # Inline Issue Comments),「メンテナンス性が下がったので PR を取り込むのに問題があります」と指摘 (GitHub Pull Request # Pull Request Statuses) といったこともしてくれるようだ

まとめ

Code Climate が継続的に解析・可視化してくれるので、「このファイルのコードのメンテナンス性低すぎて危なっかしいから いまはコレを優先して修正していこう」といった予定を立てやすくなる

継続的インテグレーション (Wikipedia) の考えを取り込んだサービスを通じて、常にメンテナンス性の高いコードを書いていけるようになりたい

Bonus Tips

他に この「継続的にコードを解析」といった観点を持つサービスに、Sider, Hakiri といったサービスなどがある

Links