命名規則
命名規則というのは、自分で作った、クラス、変数、メソッドなどに名前を付ける時のルールみたいなものです。この規則に従わなくても動作はしますが、規則に従っておいた方が、誰かと共有したりするときに大量の修正を行わずに済むし、そういうものだと理解することで、プログラムの見通しもよくなると思いますので、覚えておいて損はないと思います。
独学で勉強していると、教えてくれる人がいないので、プログラムは動けばよいという日曜プログラマーな感じになってしまっていました。今回勉強してはじめて知ったので、今後は、この規則に合わせて書いていこうと思います。
多く使われている命名規則というのはいくつかに分かれているらしい
なぜこのような記法が重要視されているかというと、もともと英語は単語と単語をスペースで区切ることで、言葉が出来上がっているのだけど、変数名にしてもメソッド名にしても、スペースが使えない。
おのずと単語と単語の間のスペースを取り外すことになる。その変数やメソッドをわかりやすく表現するために単語+単語としてしまうと読みずらい。
たとえば、何かをクリックした時に「愛しているよ」って表示するプログラムを書いた時、ILOVEYOUと書いてもiloveyouと書いても、パッと見て読みずらい。そこで書き方に一工夫したのが始まりらしい。これをILoveYouと書けばスペースがなくても読みやすくなるし、伝わりやすくなる。
これをプログラム全体を通してルール化することで、プロジェクト単位でプログラムを書いた時に誰が見ても見通しの良いプログラムになるよね?という事で、生まれたのが命名規則っていう事らしい。
命名規則にはいくつかあって、おそらく最初のうちは、アンダーバーでつなげていたのではないかと思う。i_love_you みたいに。
この方法は読みやすさではイケているんだけど「_」一個入力する手間と時間とバイト数を減らしたいと考えている人にとっては、無意味な一文字になってしまう。そこで「_」をなくしてつなげる工夫が、頭を大文字にしちゃうって発想だったと思われる。このアンダーバーでつなげる命名規則を、スネークケースって呼ぶらしい。PerlやJava以外にもPHPなどではすべて大文字のクラス名で使われていたりするみたい。
命名規則には以下のように代表的な規則名が付いていたりする
キャメルケース
単語を頭大文字で後ろに続く文字を小文字にするという記法。
🐪のコブをイメージして名前が付けられたのだと思うけど背中からコブがあって背中に戻るという感じみたいで、一般的には、頭の単語は小文字で始まり次に続く単語は大文字から始まる感じ。
頭小文字単語+頭大文字単語+頭大文字単語・・・・。
これをローワーキャメルケースと呼んだりするらしい。
それに対して頭大文字単語をつなげた形の場合をアッパーキャメルケースと呼んだりするらしい。
頭大文字単語+頭大文字単語+頭大文字単語・・・・。
この記法は、Pascalで用いられることで、次にあげるパスカルケースと呼ばれる。
パスカルケース(アッパーキャメルケース)
スネークケース
小文字_小文字とか、大文字_大文字のような記載方法アンダーバーでスペースを表現した命名方法
ハンガリアンケース
頭3文字を役割の略語として小文字で表示させて、そのあとはキャメルケースと同じ方法で記載する。
ネットで扱う画像名などをこんな命名規則で作っていた人も多いかもしれない。
btn[イメージ名]、txt[イメージ名]、ico[イメージ名]みたいな奴。画像ファイルなど大量に存在するファイルを探すときでも、並べ替えでまとめて表示させることが出来るから便利だったりする。
ケバブケース
単語をアンダーバーではなく「-」ハイフンでつなげたルールをケバブケースというらしい。[-]ハイフンは演算などでも使われるため、変数の演算の時に間違えやすいこともあるため、プログラムで使われることはあまりないらしい。判読のしやすさではある意味ダントツかもしれないのだけど、そういう意味では、計算のないHTML、あっても混同することのないCSSなどで使われることが多いらしい。
※特にHTMLとCSSは基本的に小文字だけで記載するというxhtmlのルールに沿って書かれることがおおいのでなおさら「-」ハイフンが持つ役割が大きいと思われる。
それではC#の命名規則は?
回り道になってしまいましたけどC#では、パスカルケース(アッパーキャメルケース)と、キャメルケース(ローワーキャメルケース)を使うという命名規則を採用しているみたいです。
フォルダー名などを含むほとんどの名前はパスカルケース(頭が大文字で始まるキャメルケース)で、キャメルケース(先頭の単語のみ小文字から始まる)を使うというのはメンバ変数、ローカル変数、パラメーター(引数)のみという方針で良いと思います。
※これ以外では、Unity内に、外部から読み込ませるための画像や音声ファイルなどは小文字のスネークケースで命名すると良いとどこかに書かれていました。
以上命名規則について書いてみました。
自分だけがわかっていれば良い!!という人は、命名規則はあまり考えなくてもいいのかな?とそんな気がしました。(天才というのは、いつの時代にも存在していて、他人が決めたルールには従わないことが多い)
Unityライフを楽しみましょう!
コメント