先日の先輩との ZOOM ミーティング中のこと。
先輩「ここ、キャメルケースで書いた方がいいよねー」
私「!???」
即座に Google 検索 ('Д')
・・・なるほど。
単語と単語を繋げるときに _
アンダーバーを使うか -
ハイフンを使うか、はたまた単語の最初を大文字にするか。
つまり、ここは2つ目の単語を大文字にするキャメルケースが有効だと言うこと!
私「そそそ、そうですよね!なーんでスネーク記法なんですかねー。あははー」
私の磨き抜かれたコミュニケーションスキルを駆使して事なきを得たのですが、これはしっかりと勉強しとかないとな、と思いました(゚Д゚)
学生時代に「最初は小文字、次の単語は大文字」と先生に言われて以来、ただひたすらその通りにしてきましたが、ちゃんと名前があったんですね。
いやー、恥ずかしい (*´Д`)
ちゃんと調べて勉強することにしました。
記法の種類
ネットでも色々と調べみたところ、以下の3つが代表的な記法のようです。
- キャメルケース
- パスカルケース
- スネークケース
- スパイナルケース(チェインケース / ケバブケース)
私は JavaScript を主に使用しているのですが、変数や関数はキャメルケースを使い、 クラス(コンストラクタ)はパスカルケースを使うのが一般的のようです。
検索していて少々混乱したのですが キャメル記法 のようにケースを日本語訳して書くこともあるようです。
なので キャメルケース記法 というのは厳密に言うと誤りな様子。
気を付けていきたい所存です(`・ω・´)キリッ
ではでは、それぞれの特徴をまとめていきます。
キャメルケース
const camelCase
function getMyName(){ return 'Jagi' }
キャメルケースは最初の単語の先頭を小文字にして、2つ目以降の単語の先頭を大文字にして繋ぐ記法です。
Java、JavaScript などの関数(メソッド)の命名ではこの記法が多いようです。
正確にはロウワーキャメルケース(Lower camel case)と言うそうですが、単にキャメルケースと言われることが多いようです。
パスカルケース
class PascalCase {
constructor() {
this.name = 'Jagi'
}
}
パスカルケースは先頭を含むすべての単語の先頭を大文字にして繋ぐ記法です。
Java、JavaScript、Python などのクラスの命名にはパスカルケースが使われることが多いようです。
パスカルケースは別名だそうで、正確にはアッパーキャメルケース(Upper camel case)と言うようです。
スネークケース
DEATH_SIGN_STAR = "Alcor"
my_name = "Jagi"
def get_my_name():
return my_name
スネークケースは単語をアンダーバー _
で繋ぐ記法です。
データベースのテーブルや Python での関数(メソッド)や変数の命名にはスネークケースが使われることが多いようです。
小文字をアンダーバーで繋ぐのがロウワースネークケース(Lower snake case)
大文字をアンダーバーで繋ぐのがアッパースネークケース(Upper snake case)
大文字のアッパースネークケースは定数を宣言するときによく使われるようです。
スパイナルケース
https://spinal-case.com
https://chain-case.com/jagis-chain-gallery.html
https://kebab-case.com/world-kebab.html
スパイナルケースは単語をハイフン -
で繋ぐ記法です。
URL(HTML ファイル名)によく使われているようです。
と言うのも、URL を構築する要素のひとつ、インターネットホスト名では使用できる記号がハイフン -
のみのため、URL ではハイフンで統一することが多いようです。
Web APIの設計 という本に、スパイナルケースと言う名称が記載されていたので、これが正式名称っぽいのですが、WEB 上の検索ではチェインケースやケバブケースの方が多く見られる気がします。
知人は「ケバブの方が串ぐさーって感じでわかりやすくない?」と言っていました。
串ぐさー(゚Д゚)ー
おわりに
ここまでお付き合いいただきありがとうございました。
独学でやってると、不意にこういう基礎的なところが抜け落ちてるんですよね。
気づかせてくれる先輩の存在ってありがたい。
そんな先輩におススメされた書籍。ちゃんと読破しましたよ!
一回じゃ頭に入らないので何回か読めないと覚えられなそうですが。。。
頭良くなりたいなー(゚∀゚)
ではまた!(^^)/
参考にさせていただきましたm(_ _)m
書籍
Web APIの設計
Web API: The Good Parts
Web site
WebAPI設計 〜スネークケースにするか、キャメルケースにするか〜
スネーク?キャメル?なんちゃらケースのまとめ
Python命名規則一覧
大文字小文字区切り、ハイフン区切り、アンダースコア区切り
ウィキペディア(Wikipedia) - キャメルケース
ウィキペディア(Wikipedia) - 有効なホスト名の制限