strong typedef しててもアプリケーションハンガリアンが有効な場合はある

strong typedef するってなんだ、ってのは置いとくとして、適切な名前の基準三つ。を読んでちょっと思ったことが、上のタイトル。
どういう状況かというと、変数名の補完機能の付いたエディタ*1GUI プログラム書いてるとか、そんな感じ。
GUI コンポーネントは Button クラスだとか、Label クラスだとか、十分 strong type なんだけど、一つの画面に貼り付けるコンポーネントが多い上、GUI コンポーネントは非常に多くのメソッドを持ってるのが普通だから、補完機能があまり役に立たない*2
これを避けるために、アプリケーションハンガリアンを併用して、

  • Button オブジェクトにはプレフィックス btn_
  • Label オブジェクトにはプレフィックス lbl_

を付けるとかすると、btn_ と打って補完機能を働かせれば、ボタン一覧が表示される。


そういえば、この場合型と意味が一致してるから、アプリケーションハンガリアンともシステムハンガリアンとも考えられるような・・・

*1:もちろん IDE でも可。むしろ IDE

*2:this. と打って何度げんなりしたことか・・・