株式会社オズビジョンのユッコ (@terra_yucco) です。
外部の API なども使いながらプログラミングをしていると、同じ単語でも色々な表現方法に行き当たります。
例えば私の所属している会社オズビジョンの提供サービスの一つ、ハピタスコミック。
サービスとしての正式表記はきちんとありますが、以下のような様々な表記が可能です。
- HapitasComic
- hapitasComic
- HAPITAS_COMIC
- hapitas_comic
- hapitas-comic
このどの表記も見かけるケースがあるので、それぞれなんと呼ぶのかを調べてみました。
ケース一覧
前提
プログラミング言語では空白を命令の区切りとして扱うものが多いため、英語では hapitas comic
などと空白で表現できる言葉を、空白に変わる何かで接続して表現する必要がある。
区切り方法は大きく分けて以下の 3 パターン。
- 大文字小文字の違い
- アンダースコア
_
- ハイフン
-
ここに大文字小文字のバリエーションなどでいくつかのケースが生まれます。
アッパーキャメルケース / Upper camel case
HapitasComic
- PHP
- クラス名は Upper camel case (PSR-1)
- 別名
- パスカルケース / Pascal case (Pascal で使われていた)
ロウワーキャメルケース / Lower camel case
hapitasComic
- PHP
- メソッド名は Lower camel case (PSR-1)
- 別名
- 単に camel case の場合 Lower camel case であることが多い
アッパースネークケース / Upper snake case
HAPITAS_COMIC
- PHP
- クラス定数は Upper snake case (PSR-1)
- 別名
- コンスタントケース / Constant case (定数に使うことが多いからか?)
ロウワースネークケース / Lower snake case
hapitas_comic
- PHP
- 組み込み関数はこれ
preg_match
str_replace
etc. - PSR にはこれを使わなければいけない規定はないが、一部 FW (FuelPHP など) では規約にしているケースあり
- 組み込み関数はこれ
- 別名
- 単に snake case の場合 Lower snake case であることが多い
ケバブケース / Kebab case
hapitas-comic
- PHP
-
-
は減算を表現する演算子のため使用できない - CSS 界隈でよく見かける
-
- 別名
- チェインケース / Chain case (鎖のように見える)
アッパーケバブケースってないの?
ここまでは普段よく見かける組み合わせでしたが、ケバブケースの大文字版ってないんだろうかとふと気になって調べてみたところ。
Kotlin 用の extension ですが UPPER-DASH-CASE
のような文字列は以下の呼び方をするようです。
- Upper dash case
- Upper hyphen case
- Upper kebab case
また jagaapple を見ると、以下のような呼び名もあります。
- Train case
なので、厳密にいえば Kebab case hapitas-comic
は Lower kebab case なのかもしれません。
気になる点
jagaapple では Upper snake case が HAPITAS_COMIC
ではなく Hapitas_Comic
と定義されています。
Upper camel case に業務で出会ったら、どちらを意図しているのかきちんと確認したほうが幸せになれそう。
Conclusion
業務中によく見かけて気になっていたケースについてまとめました。
区切り文字 | 大文字 | ケース名 |
---|---|---|
大文字小文字 | 単語区切り | Upper camel (Pascal Case) |
大文字小文字 | 単語区切り ただし最初は小文字 |
Lower camel (Camel case) |
アンダースコア | 無し | Snake case |
アンダースコア | 有り | Upper snake case (Constant case) |
ハイフン | 無し | Kebab case (Dash case) |
ハイフン | 有り | Upper kebab case |
PHP では使用しない (できない) ものもありますが、適切に使い分けてより可読性高く規約に沿ったコードを書けるようになればと思います!