必ず実行してください!!
TL;DR: 不明瞭な名前の関数は意図を隠し、読者を混乱させます。説明的でアクション指向の名前を使用します。
一般的な用語で名前が付けられた関数を使用すると、読者はその動作を理解するために実装に飛び込む必要があります。
これは時間を無駄にし、エラーの可能性を高めます。
スタンドアロン関数を使用する場合、クラス名が追加のコンテキストを提供しないため、名前付けはさらに重要になります。
この問題は、Tell, Don’t Ask 原則に直接関係しています。
呼び出し元に機能の推論を強制するあいまいな動作を公開する代わりに、命令名は正確なアクションを伝え、コードを検査することなく読者をガイドします。
関数にわかりやすい名前を付けると、不必要な推測が排除され、この原則に沿ったものになります。
public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }
public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }
[X] マニュアル
この臭いは、do、run、process、load などのあいまいな用語が使用されている関数名を確認することで検出できます。 .
自動化されたリンターは、これらのパターンにフラグを立てたり、過度に一般的な名前の関数を強調表示したりできます。
[X] 初心者
関数名は、その名前と機能の間に明確な 1 対 1 の対応関係を作成する必要があります。
この Bijection を破ると、開発者はコードの詳細を調べてコンテキストを確認する必要が生じ、デバッグ、レビュー、拡張機能が遅くなります。
AI ツールは、ドメインを理解せずに汎用関数名を生成することがあります。
AI を使用する場合は、関数名が説明的でアクション指向である必要があることを指定します。
AI モデルは、関数のシグネチャを事前定義された名前付けのベスト プラクティスと比較することで、あいまいな名前の検出に役立ちます。
AI と手動のコード レビューを組み合わせることで、最良の結果が得られます。
覚えておいてください: AI アシスタントは多くの間違いを犯します
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
関数名は単なるラベルではありません。それらは読者との契約です。
あいまいな名前はこの契約を破り、混乱を引き起こします。
説明的でアクション指向の名前を使用すると、コミュニケーションが簡素化され、コードの保守と拡張が容易になります。
コードの匂いは私の意見です。
Unsplash の英国図書館による写真
関数名は動詞または動詞句である必要があり、
意味のある
ロバート・C・マーティン
この記事は CodeSmell シリーズの一部です。
以上がコードの匂い - 非命令的関数名の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。