
【命名規則】スネークケース(snake_case)とは?IT用語を解説します【変数名 / ファイル名など】
はじめに
プログラミングやITの世界では、変数名やファイル名、もしくはURLを決めるときに、
命名規則というある種のルールに従って名前を決めることがあります。
命名規則は、業界、会社、チーム、個人に寄って十人十色で各々でルールが違ったりします。
今現在、命名規則には幾つかのパターンがありまして、その中に一つに、
スネークケース(snake_case)と呼ばれる書き方があります。
スネークケースは、変数名やファイル名によく使われる命名規則です。
本日の記事では、スネークケース(snake_case)について詳しく解説をします。
この記事を読むことで、スネークケースという名称だけではなく、命名規則に関して詳しくなれます。
スネークケース(snake_case)とは?
スネークケース(snake_case)とは、
単語と単語の間のスペースに、アンダースコア(_)を置く書き方のことです。
各単語の頭文字を小文字にすることも特徴の一つです。
蛇のような見た目をしていることから、スネークケース(snake_case)と読まれるようになりました。
実例を見てみましょう。
- 💮const user_name = “佐藤太郎”
- ❌const userName = “佐藤太郎”
上の例がスネークケースです。
アンダースコア(_)を使って、変数名を定義していますね。
一方で、下の例はキャメルケースと呼び、単語と単語の繋ぎ目を大文字にする手法です。
参考: 【命名規則】キャメルケース(camelCase)とは?IT用語を解説します【変数名 / ファイル名など】
とある研究によると、キャメルケースよりも、
スネークケースの方が、コードを読むとき、早く認識できるとのことです。
スネークケース(snake_case)の歴史
単語と単語をアンダースコア(_)で区切り、スネークケースとして使う慣習は、
C言語、Python、Rubyなど様々な言語で使われていました。
『The C Programming Language』(1978年)という古い本の中では
画像引用: wiki
pascal case(キャメルケースの一種である)と対比されていたりします。
Pythonではスネークケースという名前は付けられていなかった
しかし実は、昔からこのような書き方(単語をアンダースコアで区切る)に、
スネークケースという名前が付けられていたわけではないです。
当時、Pythonでは単に「lower_case_with_underscores」と呼ばれていました。
snake_caseという言葉を最初に使ったのはRuby?
snake_caseという言葉が初めて見られたのは、
2004年のRubyコミュニティで、Gavin Kistnerが使っていたことに由来します。
“ところで…そのネーミングスタイルを何と呼ぶのか、誰かが訂正してくれるまで、私はスネークケースと呼ぶことにします。”
と書かれていたとのこと。
しかし、元インテルのエンジニアであるジャック・ダールグレンは、
2002年にインテルの内部で(おそらくマイクロソフトのエンジニアとの対話の中で)
この言葉を使っていたと述べていることもあるようで、本当の発祥は定かではありません。
まあ取り敢えず、そのようにして、スネークケースは複数のコミュニティで独自に発展・定着してきたわけです。
スネークケースを慣習的に使用するプログラミング言語のリスト
最後に、スネークケースを慣習的に使用するプログラミング言語のリストを紹介します。
- ABAP
- C++, Boost
- C、標準ライブラリの一部の型名
- Eiffel, クラス名および機能名
- Elixir, アトム名、変数名、関数名
- Erlang, 関数名
- GDScript、変数名および関数名
- Java:静的なfinal定数とenumの値
- OCaml, 値、型、モジュール名
- Perl, レキシカル変数とサブルーチン
- Oracle SQL and PL/SQL
引用されていないsnake_case識別子は、実際には内部的にはSCREAMING_SNAKE_CASE識別子として表現される - Prologでは、アトム(述語名、関数名、定数)
- Pythonは、変数名、関数名、メソッド名、モジュールやパッケージ(=ファイル)名
- PHP では、クラス定数に SCREAMING_SNAKE_CASE を使用
- R, 変数名、関数名、引数名
- Rubyでは、変数名、メソッド名
- Rust, 変数名、関数名、メソッド名、モジュール名、マクロ
様々なところで、スネークケースは使われていますね。
皆さんも、是非チームで、どの命名規則を使うか、ルールを決めて取り組んでください!
開発効率も上がるはずです。
プログラミング言語のGitHubを見てみるのアリ
命名規則をプログラミンング言語で活用するとき、
業界、会社、チーム、個人で各々ルールが違ったりするので、
ぶっちゃけ、お好みの手法を各々で選べば良いと僕は思っていまして、
人によって『こうあるべき』は違うとは思うのですが、
もし選定に迷ったら、人気プログラミング言語のGitHubを参考にして見ると良いと思ってます。