4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

どうしてキャメルケースがキャメルケースなのかふと気になった君へ

Last updated at Posted at 2020-03-06

はじめに

ググれば済むことをググるのも億劫なあなたに送ります。
昨今のトイレットペーパーの件よりはある程度正当性こそ担保した上でまとめていますが、
本来諸説あることを調べ散らかして書いているだけなので、
ヤクザに脅されたときに「このQiitaに書いてあったから」と言い訳しても
埋められるのは不可避な旨ご了承ください。

命名規則、ふときになったあなたへ

Railsで諸々書いていると、クラス名ってこんな感じで呼び出しますよね

HageClass.new

単語の先頭だけ大文字にします。

一方でjsでメソッド名を書くとき

hageFunction

先頭の単語は小文字にしますね。

これってどういう違い何でしょうか???

jsの方の先頭小文字はキャメルケースと言いますよね。
エンジニアなら知ってて当然です。知らないあなたも今日からエンジニアです。おめでとうございます。

キャメルとはラクダのことです。なんでラクダ?
お前のコードなんて砂漠ぐらい不毛だとかディスられているんでしょうか?

他にも
my_classとdbとかでありがちなアンダーバーで繋ぐやり方をスネークケース
my-calssの様なハイフンで繋ぐやり方はケバブケースと言います。

ケバブって何でしょう、急に食べ物??
ケバブといえば秋葉原にこれでもかってぐらいケバブ屋さんありますよね、あれどこが一番美味しいんでしょう

キャメルケースの由来

名前の由来ですが凸凹している感じがラクダのコブに見えるからだそうです。
image.png

見え・・・見えますかね?

キャメルケースには二種類あって

先頭も大文字にするのをアッパーキャメルケース
先頭小文字をローワーキャメルケースと言うそう

冒頭のRailsクラス名なんかはこのアッパーキャメルケースに該当しますね。

そういえばMcDonaldもアッパーキャメルですね。

ただ、一般的にキャメルケースといえばローワーキャメルケースが一般的です。

アッパーキャメルケースはパスカルケースとも言われます。
なのでこちらの方がメジャー(なのかもしれない)

ではパスカルケースと命名したのは誰か?当然気になりますよね。

アンダース・ヘルスバーグさんです。
(Wikipedia情報)

ケバブケースの由来

まあキャメルケースがああいう理由ということはケバブケースもなんか察しがつきますね
串刺しになっているからだそうです。
他にも繋がっている様子からチェインケースとも言うらしい。

スネークケースの由来

もうわかりますよね

蛇みたいだからです。

うん、思った以上にフィーリングでした。

全然この辺好みなのですが

my-class_snake_case

みたいにケバブケースとスネークケースが混同されるパターンに
ちょっとだけイラっとする人僕と握手

おわりに

まあだからなんだって話ですが、法則覚えておくと

「ここハイフン繋ぎで」「ここ単語の先頭大文字で!」とかいうより

「ここスネークケースで」「ここはパスカルケースで」と、
共通言語で語れた方がちょっとだけスマートかもしれません。

まあカタカナ使ってしゃらくさい感じは出ちゃいますけど。
ベストフォートでコミットするためには諦めるしかないです。

以上、トイレットペーパーが残り1ロールしかない私がお送りしました。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?