owned mediaウェブ制作に役立つコンテンツを発信中!

命名規則「キャメルケース」「スネークケース」「ケバブケース」についてまとめてみました

最終更新日: Update!!
コーディング時にはいろんなルールや規約を設けることが多いかと思いますが、中でも重要なのが命名規則だと思います。細かいようですが、この命名規則についてルールを設けておくことで、複数人での開発をスムーズにしたり、改修時の工数短縮にも効果的です。   今回はその中でもよく用いられる「キャメルケース」「スネークケース」「ケバブケース」の3つについて違いなどをまとめてみました。  
関数や変数、class名などで用いられるいろんな命名規則
ウェブプログラミングでも、javascriptやPHPにおいて関数や変数、HTMLなどでもclass名など、命名規則を用いる場面は多々あります。この際に命名規則がなく、バラバラになっていると可読性が悪くなることで改修コストが増えたり、バグの原因になる可能性も出てきます。   そういったことを防ぐためによく使われるのが次の命名規則になります。主に単語間の記法が異なり、それぞれ呼び方も覚えておきましょう。  
【キャメルケース】camelCase 単語の先頭を大文字にする命名規則です。全ての単語の先頭を大文字にするのがアッパーキャメルケースもしくはパスカルケースで、先頭の単語だけ小文字にするのがローワーキャメルケースと呼ばれます。PHPやjsなどの関数で使われることが多いようです。
【スネークケース】snake_case 単語の間をアンダーバーでつなぐ命名規則です。DBなどで扱われる値に使用されることが多いようです。
【ケバブケース】kebab-case 単語の間をハイフンでつなぐ命名規則です。HTMLではclass名であったり、ファイル名などでもよく見かけます。
   
ハイフンには要注意!
このように、それぞれ違いがあるのですが、ハイフンを使う場合には少し注意が必要です。jsなどでは、ハイフンがマイナスの記号として認識されますので変数などには使えません。またWordPressなどでもスラッグなどに使うとDB側で不整合の原因となる可能性があるため推奨されていないようです。   ですので、jsやPHPなどのプログラミングではキャメルケースやスネークケースを使うことがいいのではないでしょうか。  
どれを採用するのがベストか?
命名規則によってパフォーマンスが異なるなどプログラミングに直接的な影響を与えることはありませんが、やはり可読性をアップしたり、ルールを統一することで複数人での開発をスムーズにすることが目的なのではないでしょうか。   ちなみにグーグルのガイドラインでは単語感をハイフンでつなぐケバブケースが推奨されているようです。HTMLのclass名においてはWordPressやBootstrapなどのフレームワークでも採用されているのが確認できます。   ただし、プログラミングの関数などではキャメルケースがやはり多いようです。PHPのフレームワークであるcakePHPでは、DBのテーブル名などにアンダーバーを使ったスネークケースが使われています。   これらをまとめますと、こんな感じに使い分けられていることになります。 キャメルケース → プログラミングでの関数や変数 スネークケース → DBなどで扱う値 ケバブケース → HTMLのclass名   もちろん、これが必ずしも正解というのはありませんので、開発チーム内でどうするのがベストかということを考えることが大切なのではないでしょうか。上記の例ではバラバラですが、全て統一するのも一つの方法かと思います。ただし、命名規則が原因でバグやエラーが出ないように注意しないといけません。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

comments

  • オガワ シンヤ

    2021.5.26
    mazさん とらさん 当メディアサイトをご覧いただきありがとうございます。リンク切れが確認できましたので削除いたしました。 ご報告ありがとうございました。
  • maz

    2021.5.26
    通りすがりですが、どうやらリンク先サイトが閉鎖してしまっているようですので、Googleのキャッシュを貼っておきます。 https://webcache.googleusercontent.com/search?q=cache:https://designsupply-web.com:443/media/developmentlab/4052/
  • とら

    2020.7.29
    (参考にさせて頂いたサイト) キャメルかスネークかハイフンかそれが問題だ ↑ここのリンク先に問題はありませんか? 想定外の動作に変わってしまっているかもしれません。

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram