The Cusp of Helix

Intact Case [詳細]

キャメル記法

ご存知のように、キャメル記法は最も有名な命名規則のひとつです。複数の語句から関数名や変数名を命名するとき、先頭以外の単語の頭文字を大文字にして連結します。

camel + casecamelCase
get + raw + keysgetRawKeys

先頭は単語の区分が自明なために頭文字を大文字にする必要がありませんが、先頭の単語を大文字にする記法もあります。両者を区分する場合、一般的には以下のように呼び分けられます。

先頭の単語の頭文字一般的な名称
小文字camel case
大文字studly caps

キャメル記法は、 Java や C# などで利用されています。 Java では、クラス名とメソッド名を区分するために camel case と studly caps を使い分けます。

メソッド名camel case
クラス名studly caps

外部リンク

アンダースコア記法

複数の単語を連結して表現する方法では、キャメル記法と並んでよく使われるのがアンダースコア記法です。各単語の間にアンダースコアを挟んで表現します。アンダースコア記法は、一般的に snake case と呼ばれます。

snake + casesnake_case
get + raw + keysget_raw_keys

アンダースコア記法は全部の単語を小文字で表記しますが、全部大文字にしたものを screaming snake case と呼びます。多くのプログラム言語で、定数の命名時に使われています。

snake + caseSNAKE_CASE
get + raw + keysGET_RAW_KEYS

アンダースコアをの代わりにハイフンで連結したものは、 train case と呼ばれます。 chain case や kebab case と呼ばれることもあります。

本記事内では、アンダースコア記法のアンダースコアやハイフン区切り記法のハイフンを「区切り子」と表記します。

ふたつの記法の目的

キャメル記法とアンダースコア記法の目的は、以下のように要約されます。

複数の単語で変数名やメソッド名を命名する際、連結した単語の可読性を高める

現在時刻を取得するメソッド名を「 get current time 」と命名する際、以下のようにすると可読性が低くなるのが分かります。

getcurrenttime

キャメル記法やアンダースコア記法で表現すると、どちらの記法でも単語の区切りを容易に識別できます。

元の単語get + current + time
キャメル記法getCurrentTime
アンダースコア記法get_current_time

表記について

本記事では、各記法を以下の様に表記します。

記法表記
キャメル記法先頭が小文字camelCase
先頭が大文字StudlyCaps
アンダースコア記法snake_case
ハイフン区切り記法train-case