キャメルケース・スネークケース・ケバブケースの違いと使い分けを解説

コードが書かれたモニター

プログラミングで変数や関数、ファイルに名前を付けるとき、「単語の区切りをどう表すか」で悩んだことはないでしょうか。userNameなのか、user_nameなのか、user-nameなのか。どれも同じ意味なのに書き方が違い、しかも言語やファイルの種類によって「正解」が変わります。

私自身、複数の言語を触っていると、つい別の言語の書き方を持ち込んでしまうことがあります。そこでこの記事では、代表的な命名規則であるキャメルケース・スネークケース・ケバブケースの違いと、「どんな場面でどれを使うのか」という使い分けを整理しておきます。

命名規則とは?

命名規則とは、変数名や関数名、クラス名などを付けるときの一貫したルールのことです。ルールを統一しておくと、コードの可読性や保守性が上がり、他の人がコードを読んだときも意図が伝わりやすくなります。

区切り文字の付け方で分類すると、よく使う命名規則は次の3つ(+派生形)です。

  • キャメルケース(camelCase) … 区切りを大文字で表す
  • スネークケース(snake_case) … 区切りをアンダースコア(_)で表す
  • ケバブケース(kebab-case) … 区切りをハイフン(-)で表す

1. キャメルケース(camelCase)

キャメルケースは、単語の区切りを大文字で表現する命名規則です。文字列の途中に大文字が出っ張る様子が、ラクダ(camel)のコブに見えることが名前の由来です。

let userName = "John";
function getUserData() { return userName; }

userNameやgetUserDataのように、2つ目以降の単語の先頭を大文字にして区切りを表します。キャメルケースには、先頭を小文字にするか大文字にするかで2つのスタイルがあります。

ローワーキャメルケース(lowerCamelCase)

1つ目の単語の先頭は小文字、2つ目以降の単語の先頭を大文字にするスタイルです。単に「キャメルケース」と言った場合は、こちらを指すことが多いです。主に変数名や関数名に使います。

let userAge = 25;
function calculateAge() { return userAge + 1; }

アッパーキャメルケース(パスカルケース / PascalCase)

すべての単語の先頭を大文字にするスタイルで、パスカルケースとも呼ばれます。クラス名やコンストラクタ、Reactのコンポーネント名など、「型」や「部品」を表す名前によく使われます。

class UserProfile {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

使用例と用途

キャメルケースは、JavaScriptやJava、C#などの変数名・関数名で標準的に使われます。ざっくり言うと、変数や関数はローワーキャメルケース、クラスやコンポーネントはパスカルケース、と覚えておくと迷いにくいです。

2. スネークケース(snake_case)

スネークケースは、単語の区切りをアンダースコア(_)でつなぐ命名規則です。低い位置を這うヘビ(snake)のように見えることが名前の由来で、すべて小文字で書くのが基本です。

let user_name = "John";
def get_user_data():
    return user_name

スクリーミングスネークケース(SCREAMING_SNAKE_CASE)

スネークケースをすべて大文字にしたスタイルは、スクリーミングスネークケース(コンスタントケース)と呼ばれます。多くの言語で定数を表すときの定番です。

const MAX_RETRY_COUNT = 3;
API_BASE_URL = "https://example.com"

使用例と用途

スネークケースは、PythonやRubyの変数名・関数名で標準的に使われます。また、データベースのテーブル名やカラム名でも広く使われる書き方です。大文字にすれば定数、と使い分けられるのも扱いやすいポイントです。

3. ケバブケース(kebab-case)

ケバブケースは、単語の区切りをハイフン(-)でつなぐ命名規則です。串に刺した具材が並ぶケバブに見えることが名前の由来で、こちらもすべて小文字で書きます。

let user-name = "John"; // JavaScriptでは変数名に使えません

JavaScriptをはじめ多くの言語では、ハイフンが引き算の演算子と解釈されるため、変数名や関数名には使えません。その代わり、ハイフンがそのまま書ける場所で活躍します。

使用例と用途

ケバブケースの主な出番は、HTMLの属性値・CSSのクラス名やID名、そしてURLやファイル名です。CSSは大文字小文字を区別しないうえ、単語がハイフンで区切られていると視覚的にも読みやすいため、クラス名の定番になっています。

<div class="user-profile">John</div>
<div id="user-info">25歳</div>

URLでも、単語の区切りにハイフンを使うのが一般的です(アンダースコアより検索エンジンに単語の区切りとして認識されやすい、と言われています)。このページのURLにcamel-snake-kebabと入っているのも、まさにケバブケースです。

結局どう使い分ける?(早見表)

最後に、どの場面でどの命名規則を選ぶかを表にまとめておきます。

  • camelCase:JavaScript・Java・C#などの変数名・関数名
  • PascalCase:クラス名・コンストラクタ・Reactコンポーネントなど「型・部品」の名前
  • snake_case:Python・Rubyの変数名・関数名、データベースのテーブル名・カラム名
  • SCREAMING_SNAKE_CASE:定数
  • kebab-case:HTML属性値・CSSクラス名/ID名、URL、ファイル名

命名規則そのものに絶対の正解はなく、大切なのは使っている言語やチームの慣習に合わせて統一することです。まずは「今書いているのは何の名前か(変数か、クラスか、CSSか、URLか)」を意識して、その場に合った書き方を選んでみてください。それだけでコードはぐっと読みやすくなります。