変数名の名前付け方式
プログラミングをする上で、変数名やクラス名、メソッド名、プロパティ名、プロシージャ名、関数名、テーブル名、カラム名に名前を付ける必要があります。ここでは、命名規則で使用される方式(ハンガリアン記法、キャメルケース、スネークケース、パスカル方式、大文字方式)について、まとめて記録しておく。
方式 | 内容 | 例 |
---|---|---|
ハンガリアン記法 | データ型やスコープがわかるように、 変数名の先頭に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に移植する際は、ソース修正する必要が発生し移植性が悪い。