Help us understand the problem. What is going on with this article?

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

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)。英語の倒置法では<主語+(助)動詞>の順番が逆になったり、目的語や副詞が文頭に来たりすることが由来だそうだ。

yimajo
株式会社キュリオシティソフトウェアの代表です。iOSアプリを作っています。最近はRxSwift研究読本書いてます。 https://swift.booth.pm/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした