命名規則(Case) Camel Pascal Snake Constant Chain Kebab Train

変数名、定数名、関数名、プロパティ名、メソッド名など、プログラミングをする上で必要になる命名規則についてまとめてみました。

スネークケース

スネークケースでは、文字は全て小文字にします。複合語の単語と単語の間はアンダースコア (アンダーバー) 「 _ 」で結合します。

(例)
snake_case
mb_substr
is_numeric
mst_customer
tbl_order

PHP や Python では変数名、関数名としてスネークケースが採用されています。
データベースのオブジェクト名などにも使用されます。

名前の由来は、蛇のように見えるところからきているそうです。

コンスタントケース

コンスタントケースでは、文字は全て大文字にします。スネークケースと同様に、複合語の単語と単語の間はアンダースコア「 _ 」で結合します。

(例)
CONSTANT_CASE
CONST_VALUE
POSITIVE_INFINITY
TBL_ORDER
MST_PRODUCT

定数、グローバル変数などの特殊な変数や、データベースのオブジェクト名などに使用されます。

アッパースネークケース、アッパーケース等の呼び方もされるそうです。

キャメルケース

キャメルケースは、複合語の最初の単語は小文字から始めて、それに続く単語は大文字から始めます。

(例)
camelCase
variableName
ignoreCase
comparisonType
startIndex

C#の変数名、パラメーター名、Javaのメソッド名、JavaScriptの関数名などに使用されます。

名前の由来は、単語の先頭が大文字になることで、ラクダのこぶのように見えることからきているそうです。

パスカルケース

キャメルケースでは最初の単語を小文字から始めますが、パスカルケースでは大文字で始めます。複合語の続く単語を大文字から始めるところは、キャメルケースと同じです。

(例)
PascalCase
TextBox
WriteLine
ProductCategory
SalesOrderDetail

C#、Java等のクラス名として使われています。
C#ではプロパティ名やメソッド名もパスカルケースが採用されています。

また、データベースのオブジェクト名などにも使用されます。

以前は定数といえばコンスタントケースを使用されることが多かったですが、最近では定数にパスカルケースが使用されることも多くなってきているようです。

名前の由来は、プログラミング言語のPascalで使用されていたことからきているそうです。

パスカルケースは、アッパーキャメルケースと呼ばれることもあります。
アッパーキャメルケースが使用される場合は、通常のキャメルケースを、ローワーキャメルケースと呼ばれることもあります。

チェインケース

チェインケースは、複合語の単語と単語の間をハイフン「 – 」で結合します。

(例)
chain-case
text-align
kebab-case
Get-Item
Train-Case

プログラミング言語で使われることは少なく、HTML や CSS のプロパティ名で主に使用されます。
HTML の id や、CSS の クラス名などに使われることが多いです。
Vue.js の prop 名を属性として使用するときにも使用されます。

名前の由来は、単語をチェーン (鎖) でつないでいるように見えることからきているそうです。

チェインケースは、ケバブケースとも呼ばれます。ハイフンで結合した状態が、串刺し料理のケバブのように見えることに由来しているそうです。
複合語の各単語の先頭の文字が大文字の場合は、特にトレインケースと呼ばれることもあります。

命名規則一覧表

名前 記載例 結合 別名
スネークケース snake_case アンダースコア
コンスタントケース CONSTANT_CASE アンダースコア アッパースネークケース
キャメルケース camelCase 大文字 ローワーキャメルケース
バイキャピタライゼーション
インターキャプス
ミックストケース
パスカルケース PascalCase 大文字 アッパーキャメルケース
チェインケース chain-case ハイフン ケバブケース
トレインケース
スパイナルケース
リスプケース

プログラムでの変換サンプルコード

以下では、比較的使われることが多い、キャメルケースとスネークケース間での変換のプログラムを中心に、C# と JavaScript で記述した場合のサンプルを記載しています。

C# での変換サンプル

C# では System.Text.RegularExpressions.Regex クラスを使用して正規表現で変換を行っています。

JavaScript での変換サンプル

JavaScript でも C# と同様に正規表現で変換を行っています。