キャメルケース / スネークケース
CamelCase / snake_case
概要(サマリー)
変数名や関数名などを付けるときに、複数単語をどうつなぐかを決める命名ルールのこと。
プログラミングでは名前にスペースを入れられないことが多いため、単語の区切りを別の方法で表す必要がある。
userName のように単語の切れ目を大文字で表すのがキャメルケース、user_name のようにアンダースコアでつなぐのがスネークケースである。
AIに「変数名はキャメルケースで統一して」「DBカラム名はスネークケースにして」などと指示すると、コード全体の見た目やルールがそろいやすくなる。
見た目だけの話に見えるが、実際には読みやすさ・保守しやすさ・チーム開発のしやすさに大きく関わる重要な考え方である。
詳細解説
キャメルケースとスネークケースは、複数の単語からなる名前を、プログラムの中でどう表記するかを決める書き方のルールである。
主に変数名、関数名、メソッド名、ファイル名、データベースのカラム名などで使われる。
たとえば「user name」という2語をそのまま書くと、スペースが入ってしまうため、多くのプログラミング言語では名前として使えない。
そこで、単語の区切りを別の形で表現する必要がある。
その代表例が、キャメルケースとスネークケースである。
キャメルケースとは
キャメルケース(camelCase)は、2語目以降の先頭を大文字にして単語をつなぐ書き方である。
例:
userName
totalPrice
isLoggedIn
大文字になっている部分が、単語の区切りを表している。
ラクダのコブのように見えるため、「camel(ラクダ)case」と呼ばれる。
スネークケースとは
スネークケース(snake_case)は、単語と単語の間をアンダースコア(_)でつなぐ書き方である。
例:
user_name
total_price
is_logged_in
アンダースコアが地面を這うヘビのように見えるため、「snake(ヘビ)case」と呼ばれる。
なぜこうした書き方が必要なのか
プログラミングでは、名前の付け方がとても重要である。
なぜなら、名前はコードを読む人にとって「これは何を表すか」を伝えるラベルだからである。
たとえば、次の2つを比べると違いがわかりやすい。
username
userName
username だけだと一続きに見えて少し読みにくいが、userName なら「user」と「name」に分かれていることがわかりやすい。
同じように、
user_name
でも単語の区切りが明確になる。
つまり、キャメルケースやスネークケースは単なる見た目の好みではなく、
単語の境界をはっきりさせて読みやすくするための工夫なのである。
どこでよく使われるのか
どちらを使うかは、言語やフレームワーク、チームのルールによって変わる。
ただ、一般的には次のような傾向がある。
キャメルケースがよく使われる場面
- JavaScript の変数名
- JavaScript の関数名
- 多くのフロントエンドコード
- Java や C# の変数名・メソッド名
例:
const userName = "Taro";
function getTotalPrice() {}
スネークケースがよく使われる場面
- Python の変数名や関数名
- データベースのカラム名
- 一部のファイル名
- URL や設定項目の名前
例:
user_name = "Taro"
def get_total_price():
pass
ただし、これは絶対ルールではなく、プロジェクトごとに変わることもある。
言語ごとに流儀が違う
ここが初心者にとってややこしい点である。
「どちらが正しいのか」と思いやすいが、実際には言語や文化によって使い分けられることが多い。
たとえば、
つまり重要なのは、
絶対にどちらが上という話ではなく、その場のルールに合わせること
である。
統一することが大事
命名で一番大事なのは、どちらを使うか以上に、同じプロジェクト内でできるだけ統一することである。
たとえば、同じファイルの中に
userName
user_name
UserName
username
のような似た名前が混在していると、とても読みにくくなる。
また、AIにコード生成を頼んだときも、命名ルールがバラバラだと全体が散らかって見えやすい。
そのため、
- 変数名はキャメルケース
- DBカラム名はスネークケース
- クラス名はパスカルケース
のように、用途ごとにルールを決めてそろえることがよく行われる。
キャメルケースとパスカルケースの違い
初心者がよく混同するのが、パスカルケースである。
キャメルケース
最初の単語は小文字で始める。
userName
getTotalPrice
パスカルケース
すべての単語を大文字で始める。
UserName
GetTotalPrice
見た目は似ているが、先頭文字が違う。
JavaScript では、変数や関数はキャメルケース、クラス名はパスカルケース、という使い分けがよくある。
より詳しくAIに聞いてみよう
- キャメルケースとスネークケースの違いを、中学生でもわかるように説明してください。
- JavaScript ではなぜキャメルケースが多いのか教えてください。
- Python でスネークケースがよく使われる理由を教えてください。
- キャメルケース、スネークケース、パスカルケースの違いを一覧で整理してください。
- AIに命名ルールを守らせるための指示例を教えてください。