Go で効果的なインターフェイスとレシーバー名を選択するにはどうすればよいですか?

DDD
リリース: 2024-11-12 07:02:02
オリジナル
203 人が閲覧しました

How to Choose Effective Interface and Receiver Names in Go?

Go でのインターフェイスの命名規則

Go でインターフェイスを作成する場合、可読性を高め、インターフェイス内での一貫性を維持するために、確立された命名規則に従うことが重要です。 codebase.

一般的な規則の 1 つは、単一のメソッド。たとえば、Reader、Writer、Formatter などのインターフェイスは、このルールに従います。

複数のメソッドを持つインターフェイスの場合は、その目的を正確に説明する名前を選択することをお勧めします。例には、net.Conn (ネットワーク接続用)、http.ResponseWriter (HTTP 応答用)、io.ReadWriter (読み取りと書き込みの両方用) が含まれます。

レシーバー オブジェクトに名前を付けるときは、次のような一般的な用語を避けることをお勧めします。これか自分自身。代わりに、クライアントの場合は c、serverHandler の場合は sh など、レシーバーのタイプを反映する略語を使用します。

次の例を考えてみましょう。

type Role string

type RolesHierarchy []Role

// IsRole verifies if a role is within the hierarchy.
func (r Role) IsRole(role Role, hierarchy RolesHierarchy) bool {
    // ... Implementation ...
}

// AssumeRole sets the role in the session.
func (r *Role) AssumeRole(session ServerSession, role Role) {
    // ... Implementation ...
}
ログイン後にコピー

提案された規則に基づいて、適切なインターフェイスとレシーバーを指定します。上記のコードの名前は次のようになります:

  • Interface:RoleChecker またはRoleVerifier
  • Receiver: r または role

または、両方の機能を 1 つのインターフェイスにマージすることが望ましい場合は、適切な名前は、RoleManager になります。

一貫性を覚えておいてください。インターフェイスとレシーバーに名前を付ける際の鍵となります。明確で説明的で、上で概説した規則に従っている名前を選択してください。これにより、Go コードの可読性と保守性が向上します。

以上がGo で効果的なインターフェイスとレシーバー名を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート