Goらしい命名とは
公式見解によると、基本的にEffective Goに基づいて命名すること
変数名の命名
-
_(アンダースコア)を使用せず、MixedCapsとする。例えば、max_lengthではなくmaxLength - 他パッケージから参照できる変数は最初の文字を大文字(MaxLength)、参照できない変数は小文字から始める(maxLength)。
- 頭字語は大文字または小文字を統一。例:
URLかurlなど。 - エラー型の変数名にはErrorを接尾語として付ける。例:
MarshalerError。 - ローカル変数はスコープが限定されているため、短い名前が好まれる。例:
req、i。
パッケージの命名
- パッケージ名は簡潔で内容を想像しやすい名前が適切。例:
bytes、http。 - 一般的な名前(
util、common)は避け、内容を明確に示す名前にする。 - パッケージ名は小文字の1単語が慣習。スネークケースやキャメルケースは使用しない。
-
internalパッケージはモジュール外からアクセスできない特別な名前。
インタフェースの命名
- 1つのメソッドのみを持つインタフェースには、
-er接尾語を付けることがある。例:Reader、Stringer。 - 複数のメソッドを持つインタフェースはその目的を反映した名前を選ぶ。例:
net.Conn。
レシーバーの命名
- レシーバー名は型を反映した短い名前を使用する。例:
r(Requestの場合)、re(Regexpの場合)。 - 一貫性を持たせるために、同一型に対して同じレシーバー名を用いる。
参考