Edited at

変数/クラス名の命名規則に使われる記法の分類

More than 5 years have passed since last update.


記法一覧

記法名

備考

スネークケース
example_case
すべて小文字で複合語のスペースをアンダースコアで区切る。

ローワーキャメルケース
exampleCase
先頭を小文字で書き始め、複合語のスペースをなくし要素の先頭は大文字にする

アッパーキャメルケース
ExampleCase
先頭を大文字で書き始め、複合語のスペースをなくし要素の先頭は大文字にする

パスカルケース
ExampleCase
アッパーキャメルケースと同じ


スネークケース

見た目がヘビの形をしている。DBのテーブル名やフィールド名、jsonの項目名に使われる事が多い。


キャメルケース

見た目がラクダのコブの形をしている。キャメルケース自体は小文字で始めるローワーキャメルケースとアッパーキャメルケースに分けられるが、アッパーキャメルケースはパスカルケースとも呼ばれるため、一般的にキャメルケースと言われる場合はローワーキャメルケースを指定される事が多い。

ローワーキャメルケースはJavaやObjective-Cの変数名に使われる事が多く、アッパーキャメルケースはJavaやObjective-Cのクラス名に使われる事が多い。


パスカルケース

記法としてはアッパーキャメルケースと同じ。プログラミング言語Pascalで使われていたことからパスカルケースと呼ばれる。ちなみにプログラミング言語Pascalでは変数名の大文字小文字は区別されない。


その他


ヨーダ記法

if文の条件比較部分にて比較条件の左側を定数、右側を変数にすることによって、==と書くべきところを=と書いてしまうミスを発覚しやすくする。

int status ;

/*…何かしらにstatusが変わる…*/
const int STATUS_OK = 200
if (status = STATUS_OK) {/*…*/} //代入してif条件に突入
if (STATUS_OK = status) {/*…*/} //constに代入できないのでコンパイルエラー

かつてC/C++のような言語ではif文の条件比較で代入が行えてしまうため、このような工夫がミスを減らしていたが、最近の言語では条件比較代入が行えないようになっているため、ヨーダ記法は大きなメリットを持たない。また、C/C++でもコンパイラによっては警告を出すようにも出来るだろう。

さらに、若いプログラマはこのヨーダ記法の必要性について知らない場合が多く、なぜこのようにするのかを考えさせてしまうことや違和感を感じさせてしまうので可読性を下げてしまう。

ちなみにヨーダ記法と呼ばれる理由は、映画スターウォーズに登場するヨーダが倒置法を使っていたことが理由とされている(参考:リーダブルコードP85)。英語の倒置法では<主語+(助)動詞>の順番が逆になったり、目的語や副詞が文頭に来たりすることが由来だそうだ。