
【命名規則】ケバブケース(kebab-case)とは?IT用語を解説します【変数名 / URLなど】
はじめに
IT業界で仕事をしていると、命名規則という言葉に出会うことがあります。
これは、単にプログラミングをしている人が変数名を決めるだけではなく、
ファイル名やURL名を決めるときも、使われる概念です。
端的に言えば、ファイル名やURL、変数名を決めるときのルールです。
命名規則には幾つかのパターンがあり、命名規則に従って名前を決めることで、
可読性が上がり読みやすくなったり、全体のルックが綺麗に整うので生産性が上がります。
今回の記事では、そんな命名規則の一つである、ケバブケース(kebab-case)について詳しく解説をします。
この記事を読むことで、ケバブケース(kebab-case)に関する知識だけではなく、
ケバブケース(kebab-case)をどういう時に使うべきか?など細かいところまで理解できます。
ぜひ、最後まで読んでみてください。
ケバブケース(kebab-case)とは
ケバブケース(kebab-case)とは、単語と単語の間のスペースを、
ダッシュ(-)に置き換える命名規則の一つです。
以下の例を見てください。
- 💮const user-name = “佐藤太郎”
- ❌const userName = “佐藤太郎”
上がケバブケースで、下がキャメルケースと呼ばれる命名規則になります。
なぜ命名規則が必要なのか?
Webの世界では、名前をつけるときにスペース(空白)は使わない方が良いとされています。
プログラミングなどでは、スペースを使って変数名を作ると明確にエラーとなります。
ファイル名やURLでは、最悪スペースを使うことが出来ますが、好ましくありません。
この課題を解決するために、当初は以下のように、そのまま単語と単語を連結させていました。
- const username = “佐藤太郎”
でも、これだよマジで読みにくいですよね?
この課題を解決するために、ケバブケースを含む、様々な命名規則が出来てきたというわけです。
ケバブケースとスネークケースの違い
先ほど、キャメルケースという言葉も出てきましたが、
命名規則は幾つかのパターンがあります。その中に、
ケバブケースと似た命名規則にスネークケース(snake_case)と呼ばれるものがあります。
少しこれについても解説をします。
ケバブケースは、スネークケース(snake_case)は以下に示すように、どちらも似ているのですが、
- 💮const user-name = “佐藤太郎”
- ❌const user_name = “佐藤太郎”
ケバブケース(kebab-case)ではダッシュ、スネークケース(snake case)ではアンダースコアを使って表現します。
スクリームケバブとは?
ケバブケースを作るとき、大文字を使用した場合、スクリームケバブと呼ばれます。
この言葉は、SNSなどで人々が大文字を使って文章を入力すると、
強調して、叫んでいるように見えることに由来しています。例えば、以下のようになります。
- 💮const THIS-IS-A-SCREAM-KEBAB = “スクリームケバブ”
- ❌const this-is-not-a-scream-kebab = “普通のケバブ”
- THIS-IS-A-SCREAM-KEBAB
- this-is-not-a-scream-kebab
ケバブケースの問題点
ケバブケースの最大の問題点は、主にプログラミングをするときの、ダッシュの使用にあります。
プログラミング言語の中には、ダッシュをマイナス記号として解釈してエラーを起こす言語もあるとのこと。
また、(私は使ったことないですが)Jekyllというプログラミング言語は、ダッシュで区切られた数字を日付だと思い込むとのこと。
こういう問題があるので、
一般的にプログラミングなどの現場では、スネークケースやキャメルケースを用いるのが好ましい命名規則となっています。
ケバブケースの活用場所
命名規則は、業界、会社、チーム、個人に寄って変わるので、明確な作法が整っているわけではないのですが、
主にケバブケースを有効活用できる場面としては、ファイル名やURLを決める場合です。
特に私は、こちらの記事でも書いたように、URLはケバブケースで書いた方が良いのでは?と思っています。
分かりやすいですし。
プログラミング言語のGitHubを見てみるのアリ
命名規則をプログラミンング言語で活用するとき、
業界、会社、チーム、個人で各々ルールが違ったりするので、
ぶっちゃけ、お好みの手法を各々で選べば良いと僕は思っていまして、
人によって『こうあるべき』は違うとは思うのですが、
もし選定に迷ったら、人気プログラミング言語のGitHubを参考にして見ると良いと思ってます。