投稿者 : 藤沢瞭介(Ryosuke Hujisawa) りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

【命名規則】スネークケース(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言語PythonRubyなど様々な言語で使われていました。

 

『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を参考にして見ると良いと思ってます。

 

 



コメントを残す

メールアドレスが公開されることはありません。

関連記事