変数名についての補足情報 - 変数名の力

スコープと変数名

スコープとは、その変数が見える範囲のことをさします。たとえば、
foo () {
	int i;
	...
	if (i == 0) {
		int l;
		...
	}
}
この場合、iのスコープはfoo()の中全体、lのスコープはifの中となります。

さて、本題に戻りますが…
短い変数名は悪者か?
いいえ。
短い変数名が示すことは、自分が一時的な(スコープが狭い)変数だということです。
より長い名前は、まれにしか使用されない変数やグローバル変数に適し、短い名前は、ローカル変数やループ変数に適します。
しかし、短くても意味を表しているほうが望ましいことは言うまでもありません。

計算結果を格納する変数の名前

total, average, maximum,...などの計算結果を入れておく変数名は、そういったものを修飾子として付加すると理解しやすく、一貫性も保たれます。
Ttl, Sum, Avg, Max, Min, Rec, Str, Ptrなど、変数名の前か後ろに付けます。
前につけるか後ろにつけるかは、プログラム全体、プロジェクト全体を通して決めることが重要です。
たとえばスコア合計を表すのにScoreTtlだったかTtlScoreだったかとそのつど悩むのは馬鹿馬鹿しいですよね。

変数につける対の言葉

最初のデータをFirstData、最後のデータをLastDataと名づけたりします。
first/lastはわかりやすいですが、first/endは一般的ではありません(英語としては)。まあだからといって英語に忠実である必要はそれほどありません。…外国人の技術者が読まない限りですが(^^;

むしろ問題は、first/lastとつける人がいたりfirst/endとつける人がいたりすることによる混乱です。また、同じプログラマでも場面に応じて対義語を変えてしまったりすると、プログラムを読むときにオオワラワです。

対義語の例を挙げておきますので、命名の際に参考にしてみてください。

	add/remove     begin/end      create/destroy
	insert/delete  first/last     get/release
	put/get        up/down        lock/unlock
	min/max        next/previous  old/new
	open/close     show/hide      source/destination
	source/target  start/stop

変数名の力へ戻る _ Top of Site

Copyright (c) 2000 Takao Tamura