2023/04/05

Goプロジェクトはどこから読み始めるのか

Golangで書かれたプロジェクトを読むとき、どこから読み始めるのか。春のgolangおさらい祭り。

func main() を探す

プロジェクトがなんらかのアプリケーションである場合は、func main() が存在するのでそれを探す。たいていはリポジトリのルートに main.go があり、そこに func main() がある。しかし、そうではないパターンもある。なので、main.go を探すのではなく、func main() を探す。そこがエントリーポイントになる。func main() の書かれた .goファイルはおおむねリポジトリのルートにあるが、サブディレクトリにある場合もある。また、ファイル名も main.go とは限らない。

func main() が複数ある

func main() を探してみると、ひとつのプロジェクトに複数の func main() が見つかることがある。これは、複数のアプリケーションを持っているから。しかし、そのような場合、必ず func main() の書かれた .go ファイルはそれぞれ別々のディレクトリに分かれている。それぞれがアプリケーションになるので、そういう認識で読む。

func main() が無い

ライブラリです。importして公開された func を呼び出して利用します。

CIを読む

Github Actionsなどの CI を利用してビルドされているものであれば、CIに書かれているビルドフローを読むことでどういう構造になっているのかわかることがある。

サイト内検索