Go のインターフェース命名規則
問題:
特に Go でのインターフェースの命名に関するベスト プラクティス単一のメソッドまたは関連する一連のメソッドを定義するもの
答え:
-
単一メソッド インターフェイス: 単一メソッドを持つインターフェイスの場合、慣例としてサフィックスを使用します。 「-er」のようにエージェント名詞を作成します。例には、「Reader」、「Writer」、「Closer」などがあります。
-
複数メソッド インターフェイス: インターフェイスに複数のメソッドがある場合は、その意図された目的を反映したわかりやすい名前を選択します。例には、「net.Conn」、「http.ResponseWriter」、「io.ReadWriter」が含まれます。
詳細な説明:
単一メソッドインターフェース:
- 「-er」 suffix は、1 メソッド インターフェイスの一貫した命名パターンを確立するのに役立ちます。
- この規則により、同様の意味を持つ関数名との混同が回避されます。たとえば、「String」メソッドと同じシグネチャと機能を持たない限り、インターフェイス メソッドに「ToString」という名前を付けないでください。
複数メソッド インターフェイス:
- インターフェイスに複数のメソッドが含まれる場合、名前はその全体的な目的を明確に説明する必要があります。
- これにより、開発者は、各メソッドのドキュメントを読まなくても、インターフェイスの機能を簡単に理解できます。
メソッド内のレシーバー名:
- 禁止「this」や「self」などの一般的な受信者名を使用してください。
- 代わりに、次のような短い 1 文字または 2 文字の名前を使用してください。受信機のタイプを反映します。これにより、コードの可読性と一貫性が向上します。
追加リソース:
- [効果的な Go: インターフェイス名](https://go.dev /doc/Effective_go#interface_names)
- [インターフェイスの種類 @ 名前には何が含まれていますか? - golang.org での講演](https://talks.golang.org/2011/names.slide)
- [受信者 @ 名前には何が含まれていますか? - golang.org での講演](https://talks.golang.org/2011/names.slide#47)
- [Go コード レビュー コメント: レシーバー名](https://github.com/ golang/go/wiki/CodeReviewComments#receiver-names)
以上が特に単一のメソッドまたは一連の関連メソッドを定義する場合、Go でインターフェイスに効果的に名前を付けるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。