snake_case とは
snake_case(スネークケース)は、単語の間のスペースをアンダースコアに置き換え、すべての文字を小文字にする書き方です。
First Nameはfirst_nameになりますorderTotalAmountはorder_total_amountになりますis-logged-inはis_logged_inになります
アンダースコアが単語の間に目に見えるすき間を作るので、最も読みやすい命名スタイルのひとつです。
ツールの仕組み
ツールは各行の単語を見つけ、小文字にしてアンダースコアでつなぎます。スペース、ハイフン、ドット、スラッシュで区切られた単語を認識し、camelCase や PascalCase の名前も大文字の位置で区切ります。連続した大文字はひとまとまりとして扱うので、parseHTMLString は parse_html_string になります。
各行は別々に変換されるので、リスト全体を貼り付けられます。
全角スペースも区切りとして扱われます。日本語の単語はそのまま残り、「ユーザー名 first name」は ユーザー名_first_name になります。全角の英字も全角のまま出力されるので(「User Name」は user_name)、変数名や列名に使う場合は半角の英字で入力してください。
| 入力 | 出力 |
|---|---|
| User First Name | user_first_name |
| orderTotalAmount | order_total_amount |
| background-color | background_color |
| GetUserByID | get_user_by_id |
| Date of birth | date_of_birth |
snake_case が使われる場所
- Python:PEP 8 の推奨どおり、変数、関数、モジュール名に
- Ruby:変数、メソッド、ファイル名に
- Rust:変数、関数、モジュールに
- SQL データベース:
created_atのようなテーブル名や列名に - ファイル名:スペースがスクリプトや URL で問題を起こす場面で
JavaScript と Java では同じ目的にキャメルケース(camelCase)を使います。そのため、フロントエンドとバックエンドがやりとりする場面では、この2つの間の変換がよく必要になります。
snake_case の仲間
| スタイル | 例 | 主な用途 |
|---|---|---|
| snake_case | max_retry_count | 変数、列名 |
| CONSTANT_CASE | MAX_RETRY_COUNT | 定数、環境変数 |
| kebab-case | max-retry-count | URL、CSS クラス |
| camelCase | maxRetryCount | JavaScript の変数 |
定数や .env ファイルには、ツールの「CONSTANT_CASE」を押してください。URL にはケバブケース(kebab-case)を使います。検索エンジンはハイフンを単語の区切りとして扱うので、Web アドレスにはハイフンの方が適しています。
きれいな名前をつけるコツ
- 短く、それでいて意味が伝わる名前にします:
ueやthe_email_address_of_the_userよりuser_emailの方が良い名前です。 - 数字で始めないようにします。ほとんどの言語では、名前を数字で始めることはできません。
- プロジェクト全体で統一します。スタイルが混ざっていると検索しにくく、入力ミスも増えます。