goumlでgoプロジェクトのUML図を出力する
goプロジェクトの依存をグラフとして可視化できるツールとして kisielk/godepgraph や paulbuis/golistdepgraph がありますが、その粒度は少し荒いものでした。(パッケージ間の依存を解析)
そこに颯爽と登場したのが kazukousen/gouml です。
Goのコードを静的解析してDDDパターンライクなPlantUMLを生成するツールを作り始めました。
— にったマン (@one_meets_seven) 2019年4月11日
ぽつぽつ開発していきたいと思いますhttps://t.co/eyydVrOCoV
goプロジェクトを解析してumlファイルを出力してくれる素晴らしいツールで、実際に出力してみた図はこのような感じになります。UMLですね〜
以下でコマンドの実行し、画像として保存するところまでを紹介していきます。
インストール
go get -u github.com/kazukousen/gouml/cmd/gouml
goumlを実行しumlファイルを出力する
gouml init
対象のディレクトリを指定する場合は -d
or --dir
を指定します。
gouml init -d ./src/
出力するumlファイル名を指定する場合は -o
or --out
を指定します。
gouml init -o xxxx
umlファイルを画像ファイルに変換する
いくつか方法がありますが、goumlは標準でhttp://plantuml.com/plantuml/svg/
からはじまる、図を表示するためのリンクを出力してくれます。これを開くのが最も簡単な方法です。
あるいはローカルのplantumlコマンドを使うこともできます。
brew install plantuml
brew install graphviz
brew install gnu-sed
cat xxxx.uml | gsed '1i @startuml' | gsed '$a @enduml' > xxxx.pu
plantuml -tpng xxxx.pu
ここでxxxx.png
という画像が生成されているはずです。ご確認ください。
注1: 出力されるpngファイルについて、デフォルトでは縦横ともに4096に制限されています。
画像にuml図の全体が収まっていないときは以下の環境変数のことを思い出してください。
echo 'export PLANTUML_LIMIT_SIZE=32768' >> ~/.bash_profile
注2: 現状では特定の条件下でグラフがちょっと悲しい感じになることがあります。
ものすごい勢いで開発されており、以下の問題も爆速で解消されました。
僕が遭遇したのは、string型のグローバル変数が宣言されている場合で、これに対処するパッチを一応投げて置きました
Author And Source
この問題について(goumlでgoプロジェクトのUML図を出力する), 我々は、より多くの情報をここで見つけました https://qiita.com/rubyu/items/d78470be2ddd9e86ebb5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .