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
の場合)。 - 一貫性を持たせるために、同一型に対して同じレシーバー名を用いる。
参考