インスタンス変数の命名問題quneインスタンス変数の命名問題2008/07/30こちらの話から。神様なんて信じない僕らのために職場で話題になったこと。m_valuemValuethis.value(self.value)_valuevalue_valueと色々あるわけですが、インスタンス変数に特別な印をつける慣習があるって知らなかった頃は,何もつけてなかったんですけど(当たり前だけど),いざつけるとなると,なにげにいつも迷ってしまいます。前までは,かっこつけて(?)アンダースコアを付けてたんですけど,接頭辞にしようか接尾辞にしようか迷ってるうちに,どっちか分からなくなっちゃって,結局ボツ。迷うようなら本末転倒ですしね。スタイルは,マイクロソフトスタイルだと思うんですけど,マイクロソフトの命名は,ただでさえハンガリアン記法で接頭辞バリバリなのに,これ以上豪華にするのには抵抗があります。長すぎるし,アンダースコアと大文字小文字を混ぜるタイプが混じっているのも,気に食わないです。プログラム(SDK/MFC)を書くときは,その命名法に従うんですが(関数名だって大文字からはじめるし......)。理由は単純で,出所が分かってた方が分かりやすい気がするから。いう感覚って,クラスを構造体的に見るか,手続の集合として見るかによって嗜好が分かれるんだと思います。構造体的に見る向きからすると,自分自身であっても出所(this)を明示したいと思うだろうけど,手続の集合として見る向きからすると,大域変数としての識別子が,他と衝突しないようにすることの方に意識が向かう(アンダースコアとかつけたくなる)んじゃないかなぁ,と。そのプログラムの中で統一されてりゃ,なんでもいいんですけどね。