Go モジュールの依存関係を可視化するツールを作った

no extension

Ubuntugraphvizインストールしたので「何か動作確認できるものはないかなぁ」と思い 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

結果は以下の通り。

ggm.png
ggm.png

DOT 言語への変換は簡単なので直接書いてもよかったが,今回は awalterschulze/gographviz パッケージを使ってみた。 これ,色々と応用できるかもねぇ。

ちなみに Go のソースコードから UML 図(PlantUML)を生成するツールは以下の方が公開しておられる。

感謝!

ブックマーク

参考図書

photo
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
Alan A.A. Donovan, Brian W. Kernighan
柴田 芳樹 (翻訳)
丸善出版 2016-06-20
Book 単行本(ソフトカバー)
ASIN: 4621300253, EAN: 9784621300251
評価     

著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。

reviewed by Spiegel on 2018-10-20 (powered by amazon-item v0.2.0)