0

メソッド パラメーターには、できるだけ意味のある明確な名前を付けることがベスト プラクティスと見なされます。

public myFunction(String meaningfulName1, String meaningfulName2, boolean meaningfulName3)

しかし、メソッドを呼び出すと、可読性が低下することがあります。

myFunction("", "foo", false);

わかりやすくするために、パラメーターの変数を作成するオーバーヘッドの価値はありますか?

String meaningfulName1 = "";
String meaningfulName2 = "foo";
String meaningfulName3 = false;
myFunction(meaningfulName1,meaningfulName2,meaningfulName3)
4

3 に答える 3

2

命名規則に基づいて、C# を使用しないと仮定しますが、C# や他の多くの言語では、メソッドを呼び出すときに名前付き引数を使用できます。

myFunction(meaningfulName1: "", meaningfulName2: "foo", meaningfulName3: false)

私はこの手法をよく使用して、さまざまな引数が何を表しているかがコンテンツから明らかでない場合に読みやすくします。特に、多くのメソッド呼び出しは0, 1, true, false, null、コードを読みやすくするために引数の命名をより明確にする必要がある場合に適しています。

名前付き引数がオプションではない言語では、内容がコンテキストから明らかでない場合、読みやすくするために変数を分割します。

ただし、私が書くほとんどのコードでは、定数引数を使用してメソッドを呼び出すことはめったにありません。ほとんどの引数は別の場所で計算され、適切な名前の変数に既に含まれています。

于 2012-08-14T05:15:50.937 に答える
1

私の経験では、明示的な方法の方が優れていると確信しています (少なくともほとんどの場合)。最初の方法では、パフォーマンスが大幅に向上することはありません。しかし、メンテナンス作業を継続する人々にとっては非常に役立ちます。

結局のところ、事前最適化は諸悪の根源です

P/s: 2 番目の方法は、LONG パラメーター リストを持つメソッドにも非常に必要です ("objectize" params メソッド以外に)。しかし、あなたがそれに対処する必要がないことを願っています。

于 2012-08-14T04:37:24.793 に答える
0

関数が定義されているときに関数を適切に文書化すると、パラメーターの説明は、Ctrl キーを押しながらクリックするか、IDE でマウスをホバーするだけで表示されます。

開発者として、実行時のコンテキストとは対照的に、その関数がそれらの変数を使用して何を返しているのかに関心を持つ可能性が高くなります(各変数が何であるかを正確に知っていても、実際に何を見ずに出力に頼ることはできませんとにかくコードを見てみたいと思います。

于 2012-05-22T10:31:06.410 に答える