プログラミングをするときに、変数や関数の名前の付け方に、いくつかのルール(パターン)があることに気が付いているでしょうか?
C言語から始めた方は、小文字で短めに名前をつける人が多かったり、Javaでたくさんコーディングしてきた人は、英大文字と小文字をつかって単語を組み合わせた名前にする人が多かったり。
そうかと思えば、最近プログラミングをはじめて、Pythonしか知らないという方は、小文字をアンダーバーでつなげていたり。
絶対に守らなければいけないルールではありませんが、コーディングするときの命名には、長年積み重ねられてきた一定のルールのようなものがあります。
知っておくと、よりわかりやすい名前がつけられます。
コーディングの命名規則
キャメルケース(ローワーキャメルケース)
文字の先頭は小文字ではじめますが、2単語目以降は大文字ではじめます。
文字の並びがラクダのコブのようなところからこう言われています。
例)lowerCamelCase
JavaやC++等のメソッド名で使われることが多いです。
パスカルケース(アッパーキャメルケース)
各単語を大文字ではじめます。
先ほどのローワーキャメルケースとあわせて、キャメルケースとひとくくりにされることもあります。
Pascalケースと言われるのは、プログラミング言語Pascalの書きかたが、このケースだったからです。
例)UpperCamelCase
クラス名で利用されることが多いです。
Pythonは、下にしめすスネークケースで変数や関数名を書くことが通例になっていますが、標準関数のクラス名はパスカルケースをつかっています。
スネークケース
すべて小文字で各単語を1個のアンダースコア(_)で区切ったものです。
例)snake_case
C言語では一般的に使われていました。
Pythonでも変数やメソッド名ではこの記法を一般的に使います。
単語と単語の間に隙間があくので、パスカルケースよりは読みやすいです。
Pythonがこの記法を主につかうのは、やはり、ヘビつながりなのかもしれませんね。
ケバブケース(チェーンケース)
各単語を1個のハイフン(-)で区切ります。
kebab-case
小文字で書くことが多いです。
LISPでは一般的ですが、HTMLやCSSでもこの書き方が使われます。
チェーンケースというのはわかりますが、ケバブというのは串ケバブの方からとっているのかと想像します。
海外のサイトでの同様の内容の説明でも、串ケバブが掲載されていました。
大文字アンダーバー連結
大文字のみでアンダーバーでつなぐケース。
例) UNDERLINE_CASE
定数、特にグローバル定数に使われることが多いです。
MAX_LENGTH = 256
とかのように使います。
C言語では、define分で定数定義するときにもよく使います。
先頭アンダーバー
先頭をアンダーバー(1つまたは2つ)で始めるケースです。
例)__prefix_underline
これは、プライベート変数、関数、内部のみで利用するもので、他で利用して欲しくないシステム関連の変数や関数名にも利用します。
C言語は、内部関数には先頭にアンダーラインがついているし、Pythonは、アンダーラインが2つつながった関数は、プライベートとして扱われるなど、プログラム言語によっても特別な意味を持つことがあります。
ハンガリアン記法
変数名やクラス名に特別な接頭文字ないし接尾文字をつける命名法。
例) chSeparater [セパレータ文字], sName [名前文字列]
他の人がその識別子を見たときに識別子の使用方法・データ型情報・スコープなどが分かるようにと、C/C++などで以前は一般的につかわれていました。
以前はMicrosoftのフレームワークやクラスライブラリ等では一般的につかわれていましたが、マイクロソフトでも.NET Framework以降はハンガリアン記法を禁止し、記号で示すのではなく、より分かりやすい単語を示すことが重視しています。
参考)ハンガリアン記法(http://srgia.com/docs/hungarian-notation-doug-klunder_j.html)
最後に
自分だけがコードを読む場合は自分だけが理解できる変数名や関数名にしてもいいのですが、複数人が参加するプロジェクトでプログラミングをするときには、書きかたにばらつきがでないように、コーディングの規則は決めておくべきです。
今回は、命名法に絞りましたが、他にも、関数、クラスや、コーディング中のコメントの書きかた、にはじまり、プログラミング言語やプロジェクトの特性にあわせて、関数引数やネストの深さなど、プロジェクトに応じて標準化できる部分はたくさんあります。
実際に業務でコーディングする場合には、今回の例(例えば、Pythonは一般的にはスネークケース)などに引きずられることなく、業務にあわせて対応すべきです。
命名規則の決め方は、ルール化するプロジェクトや個人によって異なりますが、一般的なルールもあるので参考にしていただければと思います。
今回は、コーディングの命名についてでした。
最後までお読みいただき、ありがとうございました。