ソースコードのステップ数を計測する便利ツール cloc を紹介します。
本邦の伝統的な企業、いわゆるJTCにてプログラミングに従事していると、お客さんや偉い人から「ステップ数を出せ!」と言われることありますよね。 いまどきステップ数(LOC)がいったい何の役にたつのか不明ではありますが、積極的にケンカを売ってもいいことないのでささっと数えて終わらせたいところです。 目視で数えると日が暮れてしまうのでツールを使うわけですが、Windowsならかぞえチャオ!というソフトが有名ですね。
これでももちろんいいですのが Windows だけでなくLinux や Macでもつかえる便利ツール cloc を今回は紹介したいと思います。
インストール
Linux や WSL ならパッケージマネージャ経由でインストールするのが楽だと思います。例えばUbuntu なら下記のようにすればOKです。
| |
Windows なら exeファイルをダウンロードするのが楽だと思います。 GitHub - AlDanial/cloc/releasesのところに各バージョンの実行可能ファイル(.exe)が置いてあるのでダウンロードします。Mac なら HomeBrew でインストールできます。
基本的な使い方
基本的な使い方は引数でファイルもしくはディレクトリを指定するだけです。 下記では例としてccacheというソフトのコードのステップ数を調べています。 各言語ごとにステップ数が集計されて表示されます。
| |
もし Excel などで集計したい場合は –csv オプションが便利です。下記のように CSV で出力してくれます。
| |
もしファイルごとに結果が欲しい場合は –by-file オプションを使います。
| |
これだけでも充分使えますがほかにも機能が盛り沢山です。
やりたいことはたいていあるのでcloc --help で調べてみてください。
Git との連携
cloc のいろんな機能でとくにおすすめなのがGitとの連携です。
ある時点でのステップ数を計測
引数に Git コミットID を渡すことでその時点でのステップ数を計測してくれます。下記の例は最初のコミット時点でのステップ数です。渡すのはコミットIDでなくタグ名でもかまいません。
| |
変更差分のステップ数を計測
修正差分のステップ数も簡単に計測できます。 オプション --diffを使用します。
下記の例では最新のコミットの差分を計測しています。下記のようにHEADや HEAD^ も指定できます。
| |
Jenkins との連携
上記の使い方でも充分便利ですが、Jenkinsと組み合わせればコード量の推移をグラフにして可視化できます。
Jenkinsのプラグイン SLOCCount を使えば簡単です。
XML形式で計測結果を出力してそれをSLOCCount に渡せばいいだけです。
詳細はSLOCCountのサイトを参照してください。
まとめ
今回は Linux, Windows, Mac で使えるステップ数計測ツール clocの紹介でした。
単純な計測だけでなく Gitと連携できることがすごいと思います。
さらに XML 形式で出力すれば Jenkinsでコード量の推移を監視できます。ほかにもいろんな使い方があると思うのでいろいろためしてみてください!