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に書かれているビルドフローを読むことでどういう構造になっているのかわかることがある。