ネタ元:
ハンガリアン記法が倒せない。
ハンガリアンについてつれづれ
どうやらハンガリアンだったらしい
ハンガリアン記法の話題がホットなので便乗してみる。
まず、Wikipediaをご一読いただきたい。シンプルによくまとまっている。
また、明日のデブサミ(俺は参加できませんorz)で公演するJoel Spolskyが執筆しているJoel on Softwareでも、この件について書かれている。
以上を踏まえて、ここから先を読んでいただきたい。
Wikipediaから引用する。
論理座標にRelative Positionのrp、絶対座標にAbsolute Positionのapというプレフィックスとした場合、ウィンドウの位置を設定するwindow.SetPosition(rpX, rpY);のような記述は明確に誤りであることがわかる。
どうしてわかる?
それがわかるのは、window.SetPositionが絶対座標を引数として取ると知っている場合だけだ。
それはおそらく、ドキュメントを見れば書いてあるだろう。
ここで、SetPositionの宣言を想像してみよう。こうかな?
まぁまぁ妥当だろう。では、こう書いたらどうだ?
こうなっていれば、ドキュメントを見なくとも、メソッドの宣言を見れば、渡すべきものが絶対座標であることが分かる。どちらが望ましいかは論を待たないだろう。
では、このコードはどうだ?
このapXにつけられたプレフィックスapは何を表わす? 変数の役割か? それとも型か?
これはアプリケーションハンガリアンか? それともシステムハンガリアンか?