Go モジュールの依存関係を可視化するツールを作った
Ubuntu に graphviz をインストールしたので「何か動作確認できるものはないかなぁ」と思い Go モジュールの依存関係を可視化するツールを作ってみた。
main.go
いっこだけの簡単なお仕事(笑)
ダウンロードとインストールは以下の通りでよい(モジュール・モードがオンの場合)。
$ go get github.com/spiegel-im-spiegel/ggm@latest
これで作成される ggm
コマンドへ go mod graph
の結果を流し込む。
$ go mod graph | ggm
digraph gomod {
N1->N2;
N1 [ label="github.com/spiegel-im-spiegel/ggm" ];
N2 [ label="github.com/awalterschulze/gographviz\nv0.0.0-20190221210632-1e9ccb565bca" ];
}
これを更に dot
コマンドに流し込んで画像ファイルを出力する。
$ go mod graph | ggm | dot -Tpng -o ggm.png
結果は以下の通り。
DOT 言語への変換は簡単なので直接書いてもよかったが,今回は awalterschulze/gographviz パッケージを使ってみた。 これ,色々と応用できるかもねぇ。
ちなみに Go のソースコードから UML 図(PlantUML)を生成するツールは以下の方が公開しておられる。
- kazukousen/gouml: Automatically generate PlantUML from Go Code.
- GoのコードからPlantUMLコードを生成する静的解析ツールを作っている - 日記マン
感謝!
ブックマーク
-
“go mod graph” を視覚化する : 今回のツールの元ネタ。
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。