変数名の名前付け方式

プログラミングをする上で、変数名やクラス名、メソッド名、プロパティ名、プロシージャ名、関数名、テーブル名、カラム名に名前を付ける必要があります。ここでは、命名規則で使用される方式(ハンガリアン記法、キャメルケース、スネークケース、パスカル方式、大文字方式)について、まとめて記録しておく。

方式内容
ハンガリアン記法データ型やスコープがわかるように、
変数名の先頭に1~3文字程度の識別子
(接頭辞(プリフィックス))を付ける
decPrice
ローワーキャメルケース先頭を小文字で、単語と単語のスペースをなくし、
要素の先頭は大文字になる。
productPrice
スネークケースすべて小文字で単語と単語をアンダースコアで区切るproduct_price
パスカル方式・アッパーキャメルケース変数名に複数の単語を使用し、各単語の先頭を大文字にする。ProductPrice
大文字方式偏す名をすべて大文字にする。PRICE

スネークケース:見た目が蛇の形をしているの由来。また、データベースのテーブル名やフィールド名、JSONの項目名に使用されることが多い。

キャメルケース:見た目がラクダのコブの形をしているのが由来。JavaやObjective-Cの変数名に使われることが多く。アッパーキャメルケースはJavaやObjective-Cのクラス名に使われることが多い。

パスカルケース:プログラミング言語のPascalで使われたことからパスカルケースと呼ばれる。

最近のマイクロソフトでは、ハンガリアン記方からパスカル方式に変更している。また、「.NET Framework 開発者ガイド」よりハンガリー表記法は使用しないでください。となっている。

ハンガリアン記法のデメリット・メリット

ハンガリアン記法は、変数名の先頭にデータ型が視覚的にわかるように2文字~3字の文字列を付ける方式である。一般的には、プレフィックス(接頭辞)を指す。

※ハンガリアン記法という名称は、考案者チャールズ・シモニーがハンガリー出身であることに由来。

dim strWord As String 'str部分

ハンガリアン記法は、システム変更に弱い。システム開発をしていると途中でデータ型が変わることは多々ある。もし、上記の型がStringからIntegerに変わった場合strWord→intWordにすべてのソースコードを修正する必要がある。

これが1000行や1万行など機能が多いモジュールで発生した場合、テストボリュームが大きくなる。

また、データ型が厳密な言語では、ハンガリアン記法はあまりメリットがない。マウスポインタを充てるだけで、データ型が参照できるため。ただし、データ型が厳密ではなく緩い言語(JavaScript)などは、ハンガリアン記法のほうがメリットがある。変数にあらゆるデータ型がセットできるということは、メンテナンスする上で、内部的にどのようなデータがセットされているかわからない。いちいちデバッグしなければならないので、そのような場合は、ハンガリアン記法は有効的である。

Javaではハンガリアン記法は採用されているシステムは、筆者はみたことがない。もし、VisualBasicからJavaに移植する際は、ソース修正する必要が発生し移植性が悪い。