関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
知り合いがスター付けていたので、存在を知りました。
clocとかに似たステップカウンタで、動作がめちゃ速いと書いてあります。ついでに複雑度も算出してくれるみたい。
Goで作成されているので、インストールがめちゃ簡単です。
試してみた
インストール
Goが入っている環境なので、go install
で入れました。HomebrewとかScoopとかのメジャーなパッケージマネージャには対応しているみたいですね。
$ go install github.com/boyter/scc/v3@latest $ file $(which scc) | tr ':,' '\n' /workspace/go/bin/scc ELF 64-bit LSB executable x86-64 version 1 (SYSV) dynamically linked interpreter /lib64/ld-linux-x86-64.so.2 Go BuildID=7F_COVd6PGPpI83_Y8m4/JuQfl7ePbFo4MrG2qB3d/Zmjqi84Ac9pdwsUrzFfA/2ad1BG-AYQxRbZge1ro2 with debug_info not stripped
実行
自分のリポジトリで試してみました。結構、Goのソース書いているので数万行はあるはずです。
gitpod /workspace/try-golang (main) $ time scc . ─────────────────────────────────────────────────────────────────────────────── Language Files Lines Blanks Comments Code Complexity ─────────────────────────────────────────────────────────────────────────────── Go 938 53779 8524 17684 27571 3235 Markdown 133 3307 741 0 2566 0 YAML 112 1743 202 100 1441 0 Makefile 16 186 39 2 145 10 Plain Text 9 12 0 0 12 0 HTML 5 152 25 0 127 0 Dockerfile 3 62 13 8 41 1 C 2 30 6 0 24 3 Go Template 2 2 0 0 2 0 INI 2 32 4 4 24 0 C Header 1 81 23 10 48 0 Docker ignore 1 8 1 2 5 0 JSON 1 28 1 0 27 0 License 1 21 4 0 17 0 Python 1 13 4 0 9 1 Shell 1 8 2 1 5 1 XML 1 5 0 0 5 0 ─────────────────────────────────────────────────────────────────────────────── Total 1229 59469 9589 17811 32069 3251 ─────────────────────────────────────────────────────────────────────────────── Estimated Cost to Develop (organic) $1,030,350 Estimated Schedule Effort (organic) 13.91 months Estimated People Required (organic) 6.58 ─────────────────────────────────────────────────────────────────────────────── Processed 1525617 bytes, 1.526 megabytes (SI) ─────────────────────────────────────────────────────────────────────────────── real 0m0.037s user 0m0.052s sys 0m0.044s
おー、速いですね。
なんか下の方にEstimateなんちゃらって行が出てますね。何だこれって訳してみるとこんな意味。
見積開発コスト (オーガニック方式):1,030,350ドル 見積所要期間 (オーガニック方式):13.91ヶ月 見積必要人員 (オーガニック方式):6.58人
簡易見積もりみたいなのも出してくれるみたい
オーガニック方式って何?ってPerplexityさんに聞いてみたところ、以下の回答をしてくれました。聞いたことない単語ですねこれ。海外ではメジャーな用語なのかしら。
「オーガニック方式」とは、ソフトウェア開発において比較的小規模なチームで、チームメンバーが緊密に連携しながら進める開発手法を指します。
clocでも試してみた
ついでなので、clocもインストールして実行してみました。
$ sudo apt update $ sudo apt install cloc $ file $(which cloc) | tr ':,' '\n' /usr/bin/cloc Perl script text executable $ time cloc . 1279 text files. 1243 unique files. 85 files ignored. github.com/AlDanial/cloc v 1.90 T=0.35 s (3448.4 files/s, 170934.7 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Go 941 10587 15686 27612 Markdown 133 741 0 2566 YAML 93 166 84 1270 make 13 39 2 139 HTML 4 17 0 83 C/C++ Header 1 23 10 48 Dockerfile 3 13 8 41 JSON 1 1 0 27 C 2 6 0 24 INI 1 2 2 12 Python 1 4 0 9 Bourne Shell 1 2 0 6 XML 1 0 0 5 ------------------------------------------------------------------------------- SUM: 1195 11601 15792 31842 ------------------------------------------------------------------------------- real 0m0.515s user 0m0.368s sys 0m0.146s
なんか、ちょっと結果が異なってますが除外対象とかの考え方の違いであると思っておこうと思います。(調べるのがめんどくさい)
速度は確かに scc の方が速いですね。
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。