スネークケース・ケバブケースとは?命名規則の違いと使い分けを解説

「スネークケース・ケバブケースとは?命名規則の違いと使い分けを解説」の内容を表す技術イラスト

プログラムやファイルを作っていると、download_files、download-files、downloadFilesのように、よく似た名前を目にします。

これらは、複数の単語をどのように区切って名前を付けるかを定めた命名規則です。どの形式が常に正しいというわけではなく、プログラミング言語や対象によって適した形式が異なります。

この記事では、代表的な命名規則の違いと、フォルダ・ファイル・関数・クラスなどでの使い分けを解説します。

目次

代表的な命名規則

代表的な形式を、download filesという2語を例に比較すると次のようになります。

形式記述例主な用途
snake_casedownload_filesPythonの関数・変数、データベースの列名など
kebab-casedownload-filesフォルダ名、URL、Web系のファイル名など
camelCasedownloadFilesJavaScriptの関数・変数など
PascalCaseDownloadFilesクラス名、型名、C#のメソッド名など
UPPER_SNAKE_CASEMAX_FILE_SIZE定数、環境変数など

snake_case(スネークケース)

スネークケースは、単語をアンダースコア(_)で区切る形式です。

download_files
user_name
max_file_size

文字列が蛇のようにつながって見えることから、スネークケースと呼ばれます。

Pythonでは、関数名や変数名にスネークケースを使うのが標準的です。

def download_files():
    file_count = 10

Pythonファイルの名前にもよく使われます。

download_files.py
file_converter.py

データベースのテーブル名や列名でも、スネークケースは広く使われています。

kebab-case(ケバブケース)

ケバブケースは、単語をハイフン(-)で区切る形式です。

download-files
user-profile
hydraulic-tools

単語が串に刺さったケバブのように見えることが名前の由来です。

視認性が高く、URL、フォルダ名、WebページやMarkdown文書などのファイル名によく使われます。

bat-tools/
download-files.md
pressure-loss-calculation.html

URLのパスにも適しています。

https://example.com/download-files/

ケバブケースを関数名に使えない理由

ケバブケースは、一般的なプログラミング言語の関数名や変数名には使用できません。

たとえば、次の記述を関数名として使うことはできません。

download-files()

多くの言語では、ハイフンが減算演算子として扱われるため、これは「downloadからfiles()の結果を引く式」と解釈されます。

ファイル名やURLでは便利ですが、プログラム内の識別子には向かない点に注意が必要です。

camelCase(キャメルケース)

キャメルケースは、最初の単語を小文字で始め、2語目以降の先頭を大文字にする形式です。

downloadFiles
userName
maxFileSize

大文字部分がラクダのこぶのように見えることから、キャメルケースと呼ばれます。

JavaScriptやTypeScriptでは、関数名や変数名に広く使われています。

function downloadFiles() {
  const fileCount = 10;
}

JavaScriptのファイル名については、download-files.jsとdownloadFiles.jsのどちらも見られます。フレームワークや既存プロジェクトの規則に合わせることが重要です。

PascalCase(パスカルケース)

パスカルケースは、すべての単語を大文字で始める形式です。

DownloadFiles
UserProfile
FileDownloader

多くの言語では、クラス名や型名に使われます。

class FileDownloader:
    pass
type UserProfile = {
  name: string;
};

C#では、クラス名だけでなく、メソッド名やプロパティ名にもパスカルケースが一般的です。

UPPER_SNAKE_CASE(アッパースネークケース)

アッパースネークケースは、すべての文字を大文字にし、単語をアンダースコアで区切る形式です。

MAX_FILE_SIZE
DEFAULT_TIMEOUT
DATABASE_URL

主に定数や環境変数に使われます。

MAX_FILE_SIZE = 10_000_000

通常の変数と見分けやすいため、「原則として途中で変更しない値」であることを名前から伝えられます。

フォルダ・ファイル・関数での使い分け

迷ったときは、次のように使い分けると分かりやすくなります。

対象推奨例考え方
フォルダ名bat-tools見やすく、プロジェクト名やURLにも転用しやすい
一般的な文書ファイルdownload-files.mdケバブケースは文章的な名前を読みやすく表現できる
Pythonファイルdownload_files.pyPythonの標準的な慣習に合わせる
Python関数download_files()Pythonではスネークケースが基本
JavaScriptファイルdownload-files.jsプロジェクトの規則に合わせる
JavaScript関数downloadFiles()JavaScriptではキャメルケースが一般的
クラス名FileDownloader多くの言語でパスカルケースを使う
定数MAX_FILE_SIZE通常の変数と区別しやすい

ただし、これは絶対的なルールではありません。使用する言語、フレームワーク、チームのコーディング規約によって異なる場合があります。

ツール置き場の構成例

Windows用のバッチファイルをまとめるツール置き場なら、次のような構成が自然です。

codex/
└── bat-tools/
    ├── backup-files.bat
    ├── clean-temp.bat
    └── README.md

ここでは、フォルダ名と一般的なバッチファイル名にケバブケースを使っています。

README.mdは、多くの開発環境やGitHubなどが自動的に認識する慣例的なファイル名なので、無理にreadme.mdやread-me.mdへ変更する必要はありません。

命名時に注意したいポイント

1. 同じプロジェクト内で統一する

最も重要なのは、同じ種類の名前に同じ形式を使うことです。

backup-files.bat
clean_temp.bat
DownloadLogs.bat

このように複数の形式が混在すると、ファイルが増えたときに探しにくくなります。新しいプロジェクトでは最初に規則を決め、既存プロジェクトでは既存の規則に合わせましょう。

2. 名前から役割が分かるようにする

短さだけを優先するより、何をするものなのか分かる名前を選ぶ方が保守しやすくなります。

bf.bat

よりも、次の名前の方が用途を判断しやすくなります。

backup-files.bat

3. 空白はなるべく避ける

backup files.batのような空白を含む名前は、コマンドラインやスクリプトで扱う際に引用符が必要になることがあります。

"backup files.bat"

ハイフンやアンダースコアを使えば、こうした扱いにくさを減らせます。

4. 大文字・小文字の違いに注意する

Windowsでは大文字・小文字を区別しないことが多い一方、Linuxでは別の名前として扱われるのが一般的です。

DownloadFiles.py
downloadfiles.py

異なるOSで扱う可能性がある場合は、小文字中心の規則に統一するとトラブルを避けやすくなります。

迷ったときの基本ルール

新しいプロジェクトで特別な指定がない場合は、次のルールから始めると整理しやすくなります。

  • フォルダ名:kebab-case
  • 一般的なファイル名:kebab-case
  • Pythonファイル・関数・変数:snake_case
  • JavaScript・TypeScriptの関数・変数:camelCase
  • クラス・型:PascalCase
  • 定数・環境変数:UPPER_SNAKE_CASE

既存の規則や公式スタイルガイドがある場合は、上記よりもそちらを優先します。

まとめ

スネークケースやケバブケースは、複数の単語を読みやすく、規則的に表現するための命名方法です。

  • snake_caseはPythonの関数・変数・ファイル名などに使われる
  • kebab-caseはフォルダ名、URL、一般的なWeb系ファイル名に使いやすい
  • camelCaseはJavaScriptの関数・変数で一般的
  • PascalCaseはクラス名や型名に使われる
  • UPPER_SNAKE_CASEは定数や環境変数に使われる

用途ごとの慣習を知ることは大切ですが、最優先すべきなのは同じプロジェクト内で表記を統一することです。迷った場合は、使用する言語やフレームワークの公式ルール、既存コードの書き方に合わせれば、大きく外すことはありません。

参考になったらシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

機械設計・油圧・CAD・Python・AIなど、ものづくりに関わる技術を扱っています。工学知識を整理・構造化し、設計や自動化に再利用できる形へ変えていくことを目指しています。

目次