名前の前置詞が最初の(ほとんどの場合のみ)パラメーターに適用されるメソッドの例を見てきました。しかし、他の例では、この種の命名規則を使用していません。どちらがより読みやすいと思いますか?たとえば、次のようなメソッドを作成する必要があります:
getColorFor(Player player)
またはこのように?
getColor(Player player)
このシナリオでは、メソッドはパラメーターとして指定されたプレーヤーを表す色を返します。
意味のある説明を追加する場合、または「精神」に適合する場合... はい。
.NETの OrderBy()
および ElementAt()
が良い例です。
個人的に、私はlikeを読み取るコードかなり英語に似ています。誰かのコードを読み取ることから、大量の推測、ホバリング、掘り起こし、そして難解な知識を必要としますwhenそれは何をするのかはっきりと教えてくれます。
そして、私が知る限り、 このように感じるのは私だけではありません。
短い方が良いですが、短いWordに最適な場合は明確化が必要になることがあります。ユーモラスな例:
var translator = new Translator();
var result = translator.French("sister");
//throws TargetIsMarriedException
これの方が良い:
var translator = new Translator();
var result = translator.FrenchFor("sister");
//sets result to "soeur"
これはおそらく、Microsoft独自の複合名の例の背後にある理由です。次に例を示します。
@html.TextBoxFor( m => m.Field );
たとえば、最初の単語が名詞または動詞のいずれかである場合、これは特に役立ちます。次に例を示します。
graphics.Color(x,y);
どちらかかもしれません
graphics.ColorOf(x,y);
または
graphics.SetColor(x,y);
面白いアイデアのようですが、やりすぎだと思います。私はそれが使用されるのを見たことがありません。
名前に完全な英語の構文を再形成する必要はありません。特に値が追加されない場合は特にそうです。短い名前は初心者のプログラマーにとっても完全に明白です。
興味深い質問です。
@Aganjuはやり過ぎだと同意します。
_()
_だけでは、これらの引数の "with"、 "by"、または "in the context of"などの意味があるため、関数を指定する識別子のテキストでは必要ありません。
多くの言語では、_()
_なしで識別子getColor
を使用すると、それは呼び出しではなく関数またはメソッド自体を参照します。たとえば、関数自体をどこか他の人が使用できるようにパラメータとして渡したい場合などです。正式に_()
_は、その関数に引数を「適用」することを意味すると思います。これは、関数型プログラミング指向の言語で時々見られ、JavaScriptにも、たとえば、bind
とapply
があります。
OOPを使用している場合は、次のようになります。player.getColor()
これにより、getColor
が実行されていることがある程度明確になりますbyplayer
(おそらく他の引数のコンテキストで( "with")を取る場合).
さらに、前置詞を追加するという概念は、おそらくより多くのパラメーターにうまく対応しません。
すべてではありませんが、一部の言語では呼び出し側で実際の引数に(仮パラメーター名によって)ネーミングを提供しているため、getColor(for:=player)
を実行できます。これにより、説明的な名前を付けることができます(前置詞以上)複数のパラメータ。