[[Go]]の命名規約について。
## モジュール名
[[モジュール (Go)|モジュール]]名は[[ケバブケース]]にする。
- [Effective Go \- The Go Programming Language](https://go.dev/doc/effective_go) には記載がない
- [[モジュール (Go)|モジュール]]名は[[GitHub]]の[[URL]]に依存するため、[[URL]]の流儀に従った方がいい
## パッケージ名
[[パッケージ (Go)|パッケージ]]名は可能な限り、1単語で表現する。
- [Effective Go \- The Go Programming Language > Package names](https://go.dev/doc/effective_go#package-names) に記載がある
やむをえず複数単語になる場合は、小文字のまま結合する方法、[[ケバブケース]]、[[スネークケース]]などが見受けられる。
## ディレクトリ名
ディレクトリ名は可能な限り、1単語で表現する。
- [[パッケージ (Go)|パッケージ]]名が複数単語を結合する命名なので、それに引きずられるため
- [[Go]]の開発元である[[Google]]のリポジトリ、[[gVisor]]もそのようになっている
やむをえず複数単語になる場合は、小文字のまま結合する方法、[[ケバブケース]]、[[スネークケース]]などが見受けられる。
## ファイル名
ファイル名は可能な限り、1単語で表現する。
- [[Go]]の開発元である[[Google]]のリポジトリ、[[gVisor]]もそのようになっている
やむをえず複数単語になる場合は、小文字のまま結合する方法、[[ケバブケース]]、[[スネークケース]]などが見受けられる。
ただし、テストファイルは例外。`hoge_test.go`はよく使う。