ブログトップ 記事一覧 ログイン 無料ブログ開設

Strategic Choice

2014-06-25

[]名前:汎用的な名前を避ける:tmp

どういうこと?

汎用的な名前をつけるのは、「名前のことなんて考えていません」と言っているようなものです。このような「空虚な名前」をつけるのではなく、エンティティの値や目的を表した名前を選びます。

汎用的な名前の一つに「tmp」があります。

どうして?

tmpは「一時的な保管」を表現しますが、以下のtmpは単なる怠慢です。

String tmp = user.name();
tmp += " " + user.phone_number();
tmp += " " + user.email();
...
template.set("user_info",tmp);

生存期間は確かに短いですが、この変数にとっていちばん大切なことは「一時的な保管」ではありません。

どうすれば?

汎用的な名前を避け、変数の「目的」や「値の本質」を表す「いい名前」をつけるようにします。

上述の例であれば、「tmp」の代わりに、「user_info」のような名前で、意味を伝えるようにします。

String user_info = user.name();
user_info += " " + user.phone_number();
user_info += " " + user.email();
...
template.set("user_info",tmp);

「tmp」という名前は、生存期間が短くて、「一時的な保管」が最も大切な変数にだけ使います。以下、2つの変数を入れ替える古典的な例です。

if(right < left){
	tmp = right;
	right = left;
	left = tmp;
}

このような場合は、tmpという名前で全く問題ありません。この変数の目的は、情報の「一時的な保管」です。しかも、生存期間はわずか数行です。

さらに、tmpという名前で「この変数には他に役割がない」という明確な意味を伝えています。つまり、「他の関数に渡されたり、何度も書き換えられたりしない」という意図を伝えているのです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/asakichy/20140625/1403643867