適切な名前の基準三つ。

http://d.hatena.ne.jp/r-west/20090510/1241962864とそこのコメントへの話。2009-05-03 - うっくつさん本を読む。の続きでもある。

ハンガリアンはいまいち。

id:cheapcode
名前づけに拘るなら、ハンガリアン記法への言及をすべき。アプリケーションハンガリアンは正しい実践方法だよ。

まず、例にあげてしまってすみません。
アプリケーションハンガリアンは正しいのだけど、もっと正しい方法がある。例えば、……と思ったがhttp://www.maroontress.com/Hungarian/を参照すれば十分だった。strong typedefだ。

具体的に書く。

アプリケーションハンガリアン版

int mileLength;

とstrong typedef版

Mile length;

の含む情報は全く同じだ。しかし、アプリケーションハンガリアンは人間が確認するもの、strong typedefは人間もコンピュータも確認するもの、という違いがある。つまり、strong typedefはアプリケーションハンガリアンの上位互換だということ。

〆。

名前として最も重要なのは識別子ということは変わらないのだけど、必ずしも識別子に全部詰め込まなくても良いのではないか。例えば、strong typedefでは識別子と型で名前を構成している。他に手段がなければコメントでも構わない。
「適切な名前」の利点は

  • 人間が容易に参照できること。
  • 人間が容易に理解できること。
  • 人間が容易に想起できること。

の三つだ。これを満たさないものは「適切」ではない。

おまけ。

容易に」が重要なので、環境が変われば最適解も変わる。IDEがないならstrong typedefとアプリケーションハンガリアンを併用するのもあり。

追記。

タイトルが微妙にずれているな。どうしよう。→タイトルを変えてしまえ。