リファクタリングの際に一つ基準にできるのが更新頻度です。あまり頻繁に更新されているものはファイルや処理を分割できる可能性があります。そうすることで標準化していくことでバグが入り込むのを防げるようになります。 今回紹介するgit-heatmapはGitリポジトリを解析して、ファイルごとの更新回数を可視化します。

git-heatmapの使い方

git-heatmapはGitリポジトリでコマンドを実行するだけです。オプションとしてブランチを指定することもできます。

$ git-heatmap 
app/controllers/articles_controller.rb | ████████████████████████████████████████████████████████████ | 120
                 app/models/article.rb | ████████████████████████████████████                         | 72
                      config/routes.rb | ███████████████████████████                                  | 54
    app/views/shared/_sidebar.html.erb | ██████████████████                                           | 36
app/views/layouts/application.html.erb | ███████████████                                              | 29

特定のファイルの更新頻度が飛び抜けて多いならば、リファクタリングできる可能性があります。もちろんコミット数が多いからといってバグが入る訳ではありませんが、更新が少ないファイルに比べると可能性があるでしょう。

git-heatmapはシェルスクリプト製のオープンソース・ソフトウェア(MIT License)です。

MIT,Shell jez/git-heatmap: Display a heatmap for oft-edited files