開発

命名規則とケースの違い|camelCase・snake_case・kebab-caseの使い分け

プログラムの読みやすさは、変数や関数の名前の付け方で大きく変わります。本記事では、camelCase・snake_case・kebab-case・PascalCase・CONSTANT_CASEという代表的なケース(記法)の違いと、JavaScript・Python・CSSなど言語ごとの慣習、変数・関数・定数・ファイル名での選び方を、初心者にも分かるように解説します。

公開: 2026-10-16

同じ「ユーザー名」という意味でも、コードの中では userName、user_name、user-name、UserName など、書き方は何通りもあります。どれを選ぶかは好みではなく、言語ごとの命名規則(ケース)という慣習でほぼ決まっています。本記事では、それぞれのケースの違いと、どこで何を使うべきかを順を追って解説します。

命名規則とケースとは何か

命名規則とは、変数・関数・クラス・ファイルなどに名前を付けるときのルールの総称です。その中でも、複数の単語をつなげて1つの名前にするときの「区切り方」や「大文字小文字の付け方」を指すのがケース(case/記法)です。たとえば「user」と「name」という2語を1つの名前にまとめる方法が、ケースの違いそのものになります。

なぜ命名規則が大切なのでしょうか。コードは「一度書いて終わり」ではなく、何度も読み返し、複数人で書き換えていくものだからです。名前の付け方がバラバラだと、読み手は毎回「これは変数か、クラスか、定数か」を考え直すことになり、余計な負荷がかかります。同じ種類のものは同じ記法で書くという一貫性こそが、可読性とメンテナンス性を支える土台です。

多くのプログラミング言語やフレームワークには、推奨される命名規則がスタイルガイドとして定められています。自分の好みより、まずはその言語の標準に従うのが原則です。

5つの代表的なケースと違い

実務でよく登場するケースは、大きく次の5つです。同じ2語「user」「name」を例に並べると、違いが一目で分かります。

ケース名表記例区切り方
camelCaseuserName2語目以降の頭を大文字、先頭は小文字
PascalCaseUserNameすべての語の頭を大文字
snake_caseuser_nameアンダースコアで区切り、すべて小文字
kebab-caseuser-nameハイフンで区切り、すべて小文字
CONSTANT_CASEUSER_NAMEアンダースコア区切り、すべて大文字

camelCase(キャメルケース)は、こぶ(camel=らくだ)のように途中の単語が盛り上がる見た目が名前の由来です。先頭は小文字で始め、2語目以降の頭文字だけを大文字にします。変数名や関数名で広く使われます。

PascalCase(パスカルケース)は、すべての単語の頭を大文字にする記法です。アッパーキャメルケースとも呼ばれ、クラス名や型名、コンポーネント名でよく使われます。

snake_case(スネークケース)は、単語の間をアンダースコア(_)でつなぎ、すべて小文字にします。地を這うヘビのように低く連なる見た目が名前の由来です。Pythonの変数・関数や、データベースの列名で定番です。

kebab-case(ケバブケース)は、ハイフン(-)で区切る記法です。串(kebab)に刺さった様子が由来とされます。URLやCSSのクラス名、ファイル名でよく使われます。

CONSTANT_CASE(コンスタントケース)は、すべて大文字でアンダースコア区切りにする記法です。スクリーミングスネークケースとも呼ばれ、変わらない値を表す定数に使われます。

言語ごとの慣習:JS・Python・CSS

どのケースを使うかは、言語の文化によってある程度決まっています。代表的な言語の慣習を押さえておくと、迷う場面が大きく減ります。

原則:その言語のスタイルガイドに従う。自己流より一貫性を優先する。

JavaScript / TypeScript

変数と関数はcamelCase、クラスや型・ReactのコンポーネントはPascalCase、定数はCONSTANT_CASEが基本です。たとえば getUserName()(関数)、class UserProfile(クラス)、const MAX_RETRY = 3(定数)のように使い分けます。

Python

標準のスタイルガイドPEP 8では、変数・関数はsnake_case、クラスはPascalCase、定数はCONSTANT_CASEとされています。get_user_name()、class UserProfile、MAX_RETRY = 3 のようになり、関数名がJavaScriptと異なる点に注意が必要です。

CSS / HTML / URL

CSSのクラス名やHTMLの属性、URLのパスではkebab-caseが定番です。.user-profile や /blog-posts/ のように、小文字とハイフンでつなぎます。URLでアンダースコアよりハイフンが好まれるのは、検索エンジンが単語の区切りとして認識しやすいためだとも言われます。

こうした表記の変換に迷ったら、ネーミングケース変換ツールで実際に入力し、各ケースへ一括変換した結果を見比べてみると理解が早まります。

変数・関数・定数・ファイル名での選び方

同じ言語の中でも、対象が「変数」か「クラス」か「定数」かによって使うケースは変わります。ここでは典型的な選び方を整理します。

  • 変数・関数:その言語の標準(JSはcamelCase、Pythonはsnake_case)に従います。役割が伝わる名詞・動詞を選びます。
  • クラス・型・コンポーネント:多くの言語でPascalCase。先頭が大文字だと「インスタンスではなく型」だと一目で分かります。
  • 定数:変わらない値はCONSTANT_CASE。大文字が目立つことで「ここは固定値」と読み手に伝わります。
  • ファイル名・URL:環境差で事故が起きにくいkebab-caseが無難です。大文字小文字を区別しないOSとの相性問題も避けられます。

とくにファイル名は、大文字小文字を区別するOS(Linux)と区別しないOS(一部のWindowsやmacOS設定)が混在すると、思わぬ不具合の原因になります。すべて小文字+ハイフンに統一しておくと安全です。記事や商品ページのURL末尾(スラッグ)を作るときは、スラッグ生成ツールを使うと、日本語タイトルからでもkebab-caseの読みやすいURLを手早く作れます。

可読性を高める命名のコツ

ケースを正しく選ぶことに加えて、名前そのものの質も可読性を大きく左右します。次の点を意識するだけで、コードはぐっと読みやすくなります。

  • 省略しすぎない:usrNm より userName。少し長くても、意味が伝わる名前を優先します。
  • 一貫させる:プロジェクト内で userName と user_name を混在させない。同じ概念は同じ表記で。
  • 真偽値は問いの形に:isActive、hasError のように、true/falseで答えられる名前にします。
  • 単数・複数を使い分ける:1件なら user、配列なら users。数を名前で表します。

命名は「正解が1つ」ではありませんが、チームやプロジェクトで決めた規則に全員が従うことがもっとも重要です。優れた個人技より、そろった一貫性のほうがコードベース全体を読みやすくします。

ケースの変換と表記ゆれ対策

実務では、既存コードや外部APIのデータが自分のプロジェクトと違うケースで届くことがよくあります。たとえばAPIが user_name を返すのに、フロントエンドではcamelCaseで統一したい、という場面です。こうしたとき、手作業で1つずつ書き換えると、表記ゆれやスペルミスが入り込みがちです。

変換のポイントは、まず名前を「単語の列」に分解し、それを目的のケースで組み直すことです。snake_caseやkebab-caseは区切り文字が明確なので分解しやすく、camelCaseやPascalCaseは大文字の位置を区切りとして読み取ります。とはいえ手計算は面倒なので、まとめて変換したいときはネーミングケース変換ツールに文字列を貼り付け、camelCase・snake_case・kebab-caseなど複数の形へ一気に変換するのが確実です。URL用のスラッグだけが必要ならスラッグ生成ツールが手早く、目的に応じて使い分けると効率的です。

命名規則は、覚えてしまえば一生使える基礎スキルです。まずは「変数はその言語の標準」「クラスはPascalCase」「定数はCONSTANT_CASE」「URL・ファイルはkebab-case」という大枠を押さえ、迷ったときは変換ツールで見比べながら、自分の手になじませていきましょう。

なお本記事は一般的な情報提供を目的としたものです。各言語やフレームワークの推奨記法は更新されることがあるため、最新の公式スタイルガイドやチームの規約を確認のうえ判断してください。

よくある質問

camelCaseとsnake_caseはどう使い分けますか?

言語の慣習で決まります。JavaScriptやTypeScriptでは変数・関数にcamelCase(userName)、Pythonでは変数・関数にsnake_case(user_name)を使うのが標準です。まずは自分が使う言語のスタイルガイドに従い、プロジェクト内では一貫した記法をそろえることが最も大切です。

PascalCaseはどんなときに使いますか?

すべての単語の頭を大文字にするPascalCase(UserProfile)は、多くの言語でクラス名・型名・Reactなどのコンポーネント名に使われます。先頭が大文字であることで「インスタンスではなく型・クラスである」と一目で見分けられる利点があります。

定数の命名はどうすればよいですか?

変わらない値を表す定数には、すべて大文字でアンダースコア区切りのCONSTANT_CASE(MAX_RETRY、API_BASE_URL)を使うのが一般的です。大文字が目立つことで、読み手に「ここは固定値である」とすぐ伝わり、誤って書き換えるミスを減らせます。

URLやファイル名にはどのケースが向いていますか?

URLのパスやCSSクラス、ファイル名にはkebab-case(user-profile)が定番です。すべて小文字とハイフンで統一すると、大文字小文字を区別するOSとしないOSの間で起きる不具合を避けられ、URLでは単語の区切りも認識されやすくなります。

ケース変換ツールに入力した文字列はサーバーに送信されますか?

WAZA TOOLSのネーミングケース変換ツールやスラッグ生成ツールはすべてブラウザ内で処理され、入力した文字列がサーバーへ送信・保存されることはありません。スマートフォンでも利用でき、何度でも無料で変換できます。