読者です 読者をやめる 読者になる 読者になる

Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

ラクダ・蛇・ケバブ。プログラミングの命名に関する3つのパターン

f:id:tbpg:20161118232355p:plain

プログラミングとは切っても切り離せない名付け=命名。
この際にプログラム言語ごとに推奨される命名方法として、
Camel case や Snake case などが登場します。
こういった記法に関する情報をまとめます。

Camel case

f:id:tbpg:20161118232401p:plain

複合語の語頭を大文字にする記法です。
ラクダの背中のように見えることから Camel case と呼ばれます。
先頭を大文字にするかどうかで2種類に別れます。

名称 先頭大文字 サンプル
Upper Camel case / Pascal case SampleTestData
Camel case / Lower Camel case sampleTestData

Snake case

f:id:tbpg:20161118232412p:plain f:id:tbpg:20161118232419p:plain

複合語のそれぞれをアンダースコア「 _ 」で結合する記法です。
地をはう蛇のように見えることから Snake case と呼ばれます。
定数などでよく見られるすべて大文字のケースは SCREAMING_SNAKE_CASE と呼ばれます。
蛇が荒ぶっているのですね。

名称 大文字 サンプル
SCREAMING_SNAKE_CASE SAMPLE_TEST_DATA
Snake case sample_test_data

Kebab case

f:id:tbpg:20161118232428p:plain f:id:tbpg:20161118232434p:plain f:id:tbpg:20161118232439p:plain

複合語のそれぞれをハイフン「 - 」で結合する記法です。
串が刺さったケバブのように見えることから Kebab case と呼びます。
また、チェーンで繋いだように見えることから Chaine case とも呼びます。
各先頭の文字が大文字の場合、 Train case と呼びます。

名称 種類 サンプル
Kebab case / Chain case / Spinal case すべて小文字 sample-test-data
Train case 各先頭のみ大文字 Sample-Test-Data

命名規約と論争

キャメル、スネークなどの命名規約については好みが分かれるところで、
よく燃えるお題のようです。

pg-kura.hatenablog.com

project-flora.net

CodeIQ

CodeIQで Snake case から Pascal case への変換に関する問題を出題中です。

codeiq.jp

出題期間終了後は回答コードを公開していただければ、Togetterのまとめを作成します。
同じお題について他の人はどんなコードを書いたのか?
他の言語だとどんなコードになるのか?
見比べながらわいのわいのしていただければ幸いです。

関連情報