← ブログ · · ConvertCaseHQ チーム · 9 分で読めます

キャメルケース・スネークケース・ケバブケース:言語別の命名規則チートシート

まず結論です。型とクラスは、ほぼすべての言語で PascalCase(パスカルケース)です。変数と関数は、JavaScript、Java、C#、Kotlin、Swift では camelCase(キャメルケース)ですが、Python、Ruby、Rust では snake_case(スネークケース)です。定数はほとんどの言語で SCREAMING_SNAKE_CASE ですが、Go、Swift、C#、Google スタイルの C++ は例外です。URL、CSS ファイル、パッケージ名に入るものはたいてい小文字の kebab-case(ケバブケース)で、環境変数はアンダースコアでつないだ大文字です。

大まかなパターンはこれだけです。ただ、コードレビューで議論になるのは細部なので、このチートシートでは各言語の公式または最も広く使われているスタイルガイドが実際に定めている内容だけを取り上げ、すべての言語について出典を示します。

camelCase・snake_case・kebab-case:5 つのスタイルとその別名

  • camelCase(orderTotal):最初の単語は小文字、2 語目以降は頭文字を大文字にします。lowerCamelCase とも呼ばれ、PEP 8 では mixedCase と呼んでいます。
  • PascalCase(OrderTotal):すべての単語の頭文字を大文字にします。UpperCamelCase、CapWords(PEP 8)、StudlyCaps(PHP の PSR-1)とも呼ばれます。
  • snake_case(order_total):小文字の単語をアンダースコアでつなぎます。
  • SCREAMING_SNAKE_CASE(ORDER_TOTAL):大文字の単語をアンダースコアでつなぎます。Google の JavaScript ガイドでは CONSTANT_CASE、Java ガイドでは UPPER_SNAKE_CASE と呼んでいます。
  • kebab-case(order-total):小文字の単語をハイフンでつなぎます。ハイフンがマイナス記号になるため、ほとんどの言語では識別子に使えません。

名前のスタイルを切り替えるには、当サイトの文字ケース変換ツールに貼り付けてください。スペース、アンダースコア、ハイフン、既存の大文字の位置で単語を区切るので、order_total、order-total、OrderTotal を互いにきれいに変換できます。ただし、変換は 1 つの名前ずつ行ってください。ボックス内のテキスト全体を 1 つの識別子として扱うためです。

チートシート:言語別の命名規則

言語変数と関数クラスと型定数出典
JavaScript、TypeScriptcamelCasePascalCase変更されないモジュールレベルの値は CONSTANT_CASEGoogle の JavaScript・TypeScript スタイルガイド
JavacamelCasePascalCase中身まで完全に不変な static final フィールドは UPPER_SNAKE_CASEGoogle Java Style Guide
KotlincamelCasePascalCaseconst と、中身まで完全に不変なトップレベルまたはオブジェクトの値は SCREAMING_SNAKE_CASEKotlin のコーディング規約
C#ローカル変数とパラメーターは camelCase、private フィールドは _camelCase、メソッドと public メンバーは PascalCasePascalCase。インターフェースには I プレフィックスを付ける(IWorkerQueue)PascalCaseMicrosoft の .NET ドキュメント
SwiftcamelCasePascalCasecamelCaseSwift API Design Guidelines
Goエクスポートしない場合は camelCase、エクスポートする場合は PascalCase同じルールこちらも MixedCaps(MaxPacketSize)Effective Go、Google Go Style
Pythonsnake_casePascalCase(CapWords)UPPER_SNAKE_CASEPEP 8
Rubysnake_casePascalCaseSCREAMING_SNAKE_CASERuby Style Guide
Rustsnake_casePascalCase(UpperCamelCase)SCREAMING_SNAKE_CASERust API Guidelines(RFC 430)
PHPメソッドは camelCase、プロパティは自由PascalCase(StudlyCaps)クラス定数は UPPER_SNAKE_CASEPSR-1
C++変数は snake_case、関数は PascalCasePascalCasekDaysInAWeekGoogle C++ Style Guide(いくつかある規約の 1 つ)

いくつかの行には補足が必要です。Go では、先頭の文字はそもそもスタイルの選択ではなく、可視性のルールです。Area はパッケージからエクスポートされ、area はエクスポートされません。これはコンパイラーが強制します。C++ には言語全体で共通の規約がありません。標準ライブラリ自体は snake_case(std::unordered_map、push_back)を使っているので、Google の行は唯一のルールではなく、よく文書化された選択肢の 1 つと考えてください。

Rust はスタイルに関して珍しいほど厳格です。コンパイラーが標準の設定で警告を出すので、fn GetUser() や struct user_account と書くと、リンターを実行する前から rustc が get_user と UserAccount を提案してきます。

ファイル名、モジュール名、パッケージ名

  • Java:public なトップレベルクラスは、大文字・小文字まで含めてクラス名とまったく同じ名前のファイルに置く必要があります。OrderService は OrderService.java に入れ、それ以外の名前だと javac がエラーにします。
  • Kotlin:クラスを 1 つだけ含むファイルは、そのクラスの名前にします。それ以外のファイルには、ProcessDeclarations.kt のように内容を表す UpperCamelCase の名前を付けます。
  • Python:モジュール名は短くすべて小文字にし、読みやすくなるならアンダースコアを使います。パッケージ名も短い小文字にすべきとされ、PEP 8 はアンダースコアの使用を非推奨としています。
  • Ruby:中のクラスに合わせた snake_case のファイル名にします。HelloWorld なら hello_world.rb です。
  • Go:パッケージ名は、アンダースコアも mixedCaps も使わない小文字の 1 単語にします。encoding_base64 や encodingBase64 ではなく base64 です。
  • JavaScript と TypeScript:統一されたルールはありません。Google の JavaScript ガイドはアンダースコアかダッシュを使ったすべて小文字のファイル名を求め、TypeScript ガイドは snake_case を使います。Airbnb のガイドではファイル名をデフォルトエクスポートと一致させるので、CheckBox クラスは CheckBox.js に置きます。プロジェクトごとにどれか 1 つを選び、文書に残しておきましょう。
  • npm パッケージ:新しいパッケージ名には大文字を一切使えません。

ソースコード以外:環境変数、CSS、HTML、URL、JSON、SQL

場所規則例理由
環境変数SCREAMING_SNAKE_CASEDATABASE_URLPATH や HOME などのシステム変数に合わせた形です。Linux と macOS では名前の大文字・小文字が区別されますが、Windows では区別されません。
CSS プロパティkebab-casebackground-color言語仕様で決まっています。
CSS カスタムプロパティ2 つのダッシュの後に kebab-case--brand-color大文字・小文字が区別されるため、--Brand-Color は別のプロパティになります。
CSS クラス名kebab-case。BEM と組み合わせることが多いcard__title--large周りのプロパティと同じ感覚で読めます。
JavaScript から扱う CSScamelCaseel.style.backgroundColorstyle オブジェクトはプロパティ名を camelCase で公開しています。
HTML の data 属性kebab-casedata-index-numberJavaScript からは dataset.indexNumber として読み取ります。
URL パス小文字の kebab-case/blog/developer-case-stylesGoogle はアンダースコアよりハイフンを推奨しており、/APPLE と /apple を別の URL として扱います。
JSON のキー標準はないuserId または user_id主に利用する側に合わせ、境界で変換します。
SQL のテーブルと列小文字の snake_caseorder_items主要なデータベースならどれでも引用符なしで使えます。

環境変数には 1 つ意外な点があります。POSIX では、標準ユーティリティは大文字の名前を使うとされ、小文字を含む名前はアプリケーション用に予約されています。つまり、小文字の名前が標準の変数と衝突することはありません。それでも大文字が定着した慣習なので、私たちなら大文字のままにして、独自のプレフィックス(MYAPP_TIMEOUT)を付けることで衝突を避けます。

CSS と SQL の行については、それぞれ専用の記事があります。クラス名については CSS の命名と BEM を、データベースでは小文字にしておくべき理由については SQL の命名規則 をご覧ください。

略語:スタイルガイドの意見が分かれるところ

userName についてはどのガイドも一致していますが、userID となると分かれます。Google の JavaScript ガイドと Java ガイドは、略語を普通の単語と同じように小文字にします(xmlHttpRequest、customerId)。Go は 1 つの略語の中で大文字・小文字をそろえます(ServeHTTP、appID)。Microsoft の .NET ガイドラインは、2 文字の略語は両方を大文字にします(IOStream)が、それより長い略語は最初の文字だけを大文字にします(HtmlTag)。Rust は略語を 1 つの単語として扱い(Uuid)、PEP 8 は HttpServerError より HTTPServerError を推奨しています。それぞれの方式は camelCase と PascalCase の比較で並べて比べています。

迷ったときの選び方

  1. プラットフォームが決めていないか確認する。CSS のプロパティ名、Java のファイル名、Go のエクスポートされる名前、React のコンポーネント名(大文字で始める必要があります)は、スタイルとして選べるものではありません。
  2. 言語の公式ガイドに従う。新しいコードは、一緒に使う標準ライブラリと同じ見た目にしましょう。
  3. 既存のプロジェクトに合わせる。PEP 8 もはっきり述べているとおり、スタイルガイドとの一貫性より、プロジェクト内での一貫性のほうが大切です。
  4. リンターに覚えさせる。ESLint の camelcase ルール、Python 向け Ruff の N ルール、rustc の組み込み警告が、レビュアーが指摘するより先にミスを見つけてくれます。
  5. 境界で一度だけ変換する。snake_case の JSON と camelCase の JavaScript が出会うときは、両方のスタイルがコードベース全体に入り込まないよう、1 つのシリアライズ層でキー名を変換しましょう。

© 2026 ConvertCaseHQ. All rights reserved.