magazine off

スネークケース(snake_case)とは?現役プログラマーが分かりやすく解説します!

投稿日 : 2021年7月3日(土曜日)

 

プログラミングをしていると、命名規則という言葉に出会うでしょう。

命名規則は、正しくコードを書いていく上でとても大切なルールです。

本日の記事では、プログラミング言語の命名規則の一つ、スネークケース(snake_case)を紹介します。

 

スネークケース(snake_case)とは?

 

スネークケース(snake_case)とは、単語の各スペースをアンダースコア(_)に置き換える書き方のことです。

各単語は頭文字を小文字にすることも特徴の一つです。蛇のような見た目をしていることから、スネークケース(snake_case)と読まれるようになりました。

実例を見てみましょう。


const user_name = "佐藤太郎"

このように、アンダースコア(_)を使って、変数名を定義していますね。

命名規則はチームやプログラミング言語に寄って変わりますが、変数名や、ファイル名によく使われる命名規則です。

ある研究によると、キャメルケースよりもスネークケースの方が、コードを読むとき、早く認識できるとのことです。

 この記事では、プログラミングの命名規則に使うキャメルケースを解説します。 キャメルケース(camelCase)とは? キャメルケース(camelCase)とは、最初の単語は小文字で初め、それ以降は大文字で区切っていく書き方です。コブを持つラクダに似てるので、キャメルと呼ばれています。"iPhone "や "eBay "という単語はキャメルケースだと分かりますね。一般的には、JavaScriptなどの言語ではキャメルケースで変数名を作るのがお作法です。 ❌ user_name = "太郎"💮 u...
キャメルケース(camelCase)とは?現役プログラマーが解説 - magazine off

スネークケースの歴史

 

アンダースコアを単語の区切りに使うようになったのは、1960年代後半にさかのぼります。

特にC言語に関連しており、『The C Programming Language』(1978年)の中でpascal case(キャメルケースの一種である)と対比されています。

しかし、この慣習には伝統的に特定の名前がなく、Pythonプログラミング言語スタイルガイドでは単に「lower_case_with_underscores」と呼ばれていました。

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, 変数名、関数名、メソッド名、モジュール名、マクロ

皆さんも、是非チームで、どの命名規則を使うか、ルールを決めて取り組んでください!開発効率も上がるはずです。

Categories

Recent Posts

I got a mount error when I vagrant up

  Can not mount box add, vagr…

投稿日 : 2018年3月23日(金曜日)

RSpecのテストを自動化する方法

  gem 'guard-rspec', require: false bund…

投稿日 : 2019年9月18日(水曜日)

チェックボックスを動的に作る – jQuery

 チェックボックスを動的に作る - jQuery jQueryを使ってhtmlの…

投稿日 : 2018年4月14日(土曜日)

wkwebviewでダブルタップすると画面が拡大される

  環境 HTML5 HTML WKWebView …

投稿日 : 2017年8月8日(火曜日)