プログラミングにおける命名規則(ネーミングコンベンション)とは
ソフトウェア開発では、変数名・関数名・クラス名・ファイル名などに一貫した命名規則を適用することが極めて重要です。命名規則とは、複数の単語を組み合わせて識別子を作る際の「つなぎ方のルール」のことです。チーム全体で同じ規則を守ることで、コードの可読性が向上し、レビューや保守が格段に楽になります。代表的な命名規則として camelCase、snake_case、kebab-case、PascalCase、CONSTANT_CASE などがあり、それぞれ使われる場面や言語が異なります。
各ケースの特徴と使い分け
camelCase(キャメルケース)
先頭の単語を小文字で始め、2語目以降の先頭を大文字にする書き方です。JavaScript や Java の変数名・関数名で広く採用されています。例:getUserName、totalPrice、isActive。先頭が大文字になる PascalCase(アッパーキャメルケース)はクラス名やコンポーネント名に使われ、React のコンポーネント名(UserProfile など)が代表例です。
snake_case(スネークケース)
単語をアンダースコア(_)で区切り、すべて小文字にする書き方です。Python では変数名・関数名の標準規則(PEP 8)として定められており、Ruby や PHP でも一般的に使われます。例:user_name、get_total_price、is_valid。データベースのカラム名や API のレスポンスフィールドにもよく用いられます。
kebab-case(ケバブケース)
単語をハイフン(-)で区切り、すべて小文字にする書き方です。CSS のクラス名やプロパティ名、HTML の属性名、URL のパスなどで標準的に使われます。例:main-content、font-size、user-profile。多くのプログラミング言語ではハイフンが演算子として解釈されるため、変数名には使えない点に注意が必要です。
CONSTANT_CASE(コンスタントケース)
単語をアンダースコアで区切り、すべて大文字にする書き方です。定数やマクロ、環境変数の命名に使われます。例:MAX_RETRY_COUNT、API_BASE_URL、DEFAULT_TIMEOUT。JavaScript の const 宣言、C/C++ の #define、Java の static final フィールドなどで一般的です。
言語別・分野別の命名規則まとめ
JavaScript / TypeScript では変数・関数に camelCase、クラス・型名に PascalCase を使います。Python は PEP 8 に従い変数・関数に snake_case、クラスに PascalCase を採用しています。CSS ではクラス名に kebab-case が標準で、BEM 記法(block__element--modifier)も広く使われています。Go 言語ではエクスポートする名前を大文字始まりの PascalCase、非公開名を camelCase にするという言語仕様レベルのルールがあります。
なぜ命名規則を統一すべきなのか
命名規則が統一されていないコードベースは、読み手にとって大きな認知負荷となります。ある変数が userName で別の変数が total_count だと、コードを読むたびに脳内で変換が必要になり、バグの見落としやレビュー効率の低下を招きます。また、リンターや静的解析ツール(ESLint、Pylint など)は命名規則の違反を自動的に検出できるため、プロジェクト初期に規則を定めておくことで品質を維持しやすくなります。一貫した命名は、検索性の向上にも直結します。プロジェクト内で grep や IDE の検索機能を使う際、命名規則が統一されていれば目的の識別子を素早く見つけることができます。