2015/04/11

Snake case

新橋駅ガード下の沖縄料理居酒屋にて
 ハブ酒の話から私は蛇が好きだということを語ってしまった。「諸君私は蛇が好きだ」みたいな。
スネークセンターに行きたい。ブラックマンバを見てみたい。基本的に毒蛇とは関わりたく無いが、関わっちゃいけない危険なやつということにも魅力があると思う。いかにも危険そうな顔の毒蛇もいるが、ブラックマンバはとても綺麗な顔をしている。白色(か銀色)の体に真黒くてまん丸い目、そして大きく開けた口の中も黒。写真によっては可愛く見えたりかっこよく見えたりするが、綺麗だと思う。なんていうか造形が神懸かってる。
なのに持ってる毒は最強クラス、性格も攻撃的というとても危ない蛇だ。その見た目とのギャップにとても魅力を感じる。

 てことを言いたいのではなくて、最近スネークケースにはまっているという話をしたい。
今仕事で書いてるのは主にC++なので基本はキャメルケースだ。さらにC++といってもWindowsで動作するVC++なので、ハンガリアン記法がそこかしこに混じってくる。最初はlpなんとかという不思議な文字列を見かけるたびに苛立っていたもんだが最近はLPCTSTRくらいならスッと入ってくるから不思議だ。それでもハンガリアン記法の命名規則(書き方?)は今のプログラミング環境、IDEを考えると実に無意味な過去の遺物だと思う。
スネークケース:file_path
キャメルケース:filePath
ハンガリアン記法:lpcFilePath(?) 
蛇かラクダかは、要は単語をアンダースコアで区切るか、先頭一字を大文字にするという決まりで区切るかの違い。
ハンガリアン記法は良く知らないけど基本は型を示す一文字を連ねて命名する記法だったと思う。よく知らないし知りたいとも思わない。

 キャメルケースはJava、JavaScriptを書いてる時からずっと慣れているのでキャメルケースなら全然文句ない。ただ、Rubyの影響で試しにスネークケースを使ってみるとさらに読み易く感じることに気が付いた。
最初は横に長くなるのが嫌かと思ったんだけどそれはまぁ改行のタイミングとかでどうとでもなるので良いかなと思う。
 またVC++で試すと、ハンガリアン記法、キャメルケース、スネークケースが混ざってしまう。これに関しては見た目は嫌だけど、実用的には変数、関数、Win32API関係のもの、と自動的に意味別になるので意外と分かりやすかったりする。
 あと地味に嬉しいのは大文字にするか小文字にするか悩まなくてよいこと。 仕様書などで大文字の略称で書き表していたものなど、変数名でも同じ大文字で書きたくなる。例えば「SBP」という概念があったとして、SBPParser って書くと SBPP まで大文字が連なり区切りが無くなるので見ずらいのだ。かといってSbpParser にすると見慣れなくてそれはそれで嫌だったり。そんなときにSBP_Parserって書けるってのは悩みが減るので良い(スネークだろうがキャメルだろうが変数名は必ず小文字で始めなければならないので実際は悩むだろうけど)。

なんかチーム内でコーディング規約って有ったような気もするが怒られるまではこれで行こうと思う。
怒られてもどうせ一括置換で容易に変えれるので是非試してみると良い。

0 件のコメント:

コメントを投稿