メンバ変数(インスタンス変数)の命名
職場で話題になったこと。
- m_value
- mValue
- this.value(self.value)
- _value
- value_
- value
と色々あるわけですが、
世の中では
「m_ or mでメンバである事を明示する派」(m派)
「mは冗長だから_だけで表すよ派」(接頭辞アンダースコア派=マーチン・ファウラー派)
「言語機能に乗っ取ってthisつけて表すよ派」(this派)
「前置_は言語処理系に予約されている(c/c++)ので後置_にするよ派」(接尾辞アンダースコア派)
id:nattowさんの指摘で追記。
「つけないと区別できないのは設計がまずいから俺はつけないよ、てか接頭辞も接尾辞もきもいよ派」(設計上正しければ区別必要ないよ派)
がいるような気がします。
(Rubyの@派とかは知らぬ)
で、割と最近「後置_派」(C++ Coding Standardsの影響)になったんですが、
実はJavaでもSunは
Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed.
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367
(言語では許容されているけど変数は_や$で始めるんじゃねぇよボケナス)→意訳
といってます。
だから、という訳ではないですが、
_を使いたいなら接尾の方が良いですよ、とか思ってみたり。
まぁ、個人では好きなようにすべきですが混在は避けたいですよね、とか。