LoginSignup
2
2

More than 1 year has passed since last update.

手元にあるGoプロジェクトをビジュアルに読む!

Last updated at Posted at 2021-06-19

TL;DR

https://github.com/momotaro98/govizgo getして使えば、以下のような感じで、あなたやあなたの職場のプライベートなGoプロジェクトのパッケージ依存関係が可視化できるようになります。

isucon9-q.png

前提

この記事は以下記事リスペクトの記事になります。

上記記事制作者の方が作成したgovizというツールが現状(2021年6月19日時点)で長らくメンテナンスされておらず、別の方がフォークしたものをさらにフォークする形で修正をしました。

筆者のフォークしたレポジトリが以下になります。

既存のgovizは$GOPATH/src配下のソースコードしか解析対象にしていなかったので、go getはしていないプライベートなGoプロジェクトも解析対象にするように筆者が改修しました。

使い方

インストール

go get github.com/momotaro98/goviz

or

go install github.com/momotaro98/goviz@latest

そして別ツールである graphviz のグラフ生成ツールもインストールしておく必要があります。

brew install graphviz

使う

Step1: Goプロジェクトがあるディレクトリへ移動する。

このとき、go.modがあるディレクトリへの移動をしてください。

Step2: go.modにあるモジュール名を確認

以下はサンプルのプロジェクトです。以下の場合は、github.com/momotaro98/isucon9-q/webapp/goになります。

go.mod
module github.com/momotaro98/isucon9-q/webapp/go

go 1.15

require (
        github.com/go-sql-driver/mysql v1.4.1
        github.com/gorilla/sessions v1.2.0
        github.com/jmoiron/sqlx v1.2.0
        goji.io v2.0.2+incompatible
        golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
)

Step3: go.modがあるディレクトリ上にてエントリーポイントのGoファイルがあるディレクトリを指定して実行

goviz -i github.com/momotaro98/isucon9-q/webapp/go | dot -Tpng -o project.png

生成されたproject.pngが冒頭のスクショの図になります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2