【ちょっとの工夫で読みやすいコードに!】 コードを書く時に考えたい変数の命名規則

はじめに

この記事ではプログラミングでよく使われる命名規則について解説します。
それぞれの規則の特徴や違いについて理解するのが今回の目的です。

自分にはどの命名規則が適しているのかを俯瞰的に見られるようになると思います。
ぜひ最後まで読んでみて下さい。

目次

命名規則とは

命名規則とはクラス名や変数名を定義する際に決められているスタイルです。
複数の単語を一つの文字として結合するために使われます。

例えばremove event handler という変数を定義したいと思ったとします。

普段、このような名前をつける際には単語ごとにスペースを空けます(下図参照)。
しかし、コードを書く際にはスペースはプログラミング言語が予約語として意味を持っていることが多いです。
そのためスペース区切りではなく、これから紹介するような様々な区切り方で命名を行います。

remove-event-handler

主な命名法

今回紹介するのは以下の4種類です。

記法名概要
キャメルケースcamelCase最初は小文字、2単語以降は大文字で繋げる
パスカルケースPascalCase単語ごとに最初の文字を大文字で繋げる
スネークケースsnake_case単語の最初の文字は小文字、単語ごとにアンダーバー (_)で繋げる
ケバブケースkebab-case単語の最初の文字は小文字、単語ごとにハイフン (-)で繋げる

順を追って説明します。

キャメルケース (camelCase)

camel

キャメルケースは最初の単語以外の単語の最初の文字を大文字にして接続します。

単語を接続する一般的な方法で、非常に多くの言語で使われています。
フロントエンド言語ならJavaScriptでもこのスタイルが使われています。

Raw: update state handler
Camel Case: updateStateHandler

パスカルケース (PascalCase)

pascal

画像引用元:[CHRISTIANITY] Blaise Pascal Scientific and spiritual prodigy

パスカルケースは単語ごとに最初の文字を大文字にして接続します。
キャメルケースと違い最初の単語も大文字にすることから、アッパーキャメルケース(upper camel case)とも言われます。

プログラミング言語のPascalで使われていたことからこの名前で呼ばれています。

Raw: update state handler
Pascal Case: UpdateStateHandler

スネークケース (snake_case)

snake

スネークケースは単語ごとにアンダーバー( _ )で接続します。

これは非常に多くの言語で使用されています。
特にデータベースのフィールド名や言語だとPythonでもよく使われています。

Raw:update state handler
Snake Case: update_state_handler

ケバブケース (kebab-case)

cobra

ケバブケースは単語ごとにハイフン( – )で接続します。

このスタイルはよくURLで見られます。
例えば、https://code-ship-blog.wemotion.co.jp/のように使われます。

Raw: code ship blog
Kebab Case: code-ship-blog

上記の4つ以外にもグローバル変数でよく用いられるUPDATE_STATE_HANDLERのような書き方など様々な種類があります。
興味がある人は調べてみると面白いと思います。

まとめ:結局どれを使えばよいのか?

今回は4つの命名規則紹介しました。
最後に「結局どの方法を使えばよいか?」について考えたいと思います。

結論から言えばどれが正しいということは特にありません。
どれを使うのかべきかは自分が使う言語のコミュニティーや開発チームに依存します。
なのでそこで使われている規則に従うことが一番良いと思います。

自分のチームや言語ではどのスタイルが使われているのか確認してみてはいかがでしょうか。

参考URL

Case Styles: Camel, Pascal, Snake, and Kebab Case

リーダブルコード要約とリーダブルコード要約の活用方法

以下の記事でどれを使うのか議論があったので、トピックとして知っておくと面白いかもしれません。

キャメルケースよりスネークケースで。

定数にUPPER_SNAKE_CASEを使うのは辞めようっていう話


おすすめ記事

https://code-ship-blog.wemotion.co.jp/technology/%e3%80%90%e9%96%8b%e7%99%ba%e5%8a%b9%e7%8e%87up%e3%80%91%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e3%81%a7%e3%81%8a%e3%81%99%e3%81%99%e3%82%81%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88/
https://code-ship-blog.wemotion.co.jp/technology/%e3%80%90%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%81%8c%e4%bd%bf%e3%81%86%e8%ac%8e%e3%81%ae%e9%bb%92%e3%81%84%e7%94%bb%e9%9d%a2%e3%80%91%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad/
https://code-ship-blog.wemotion.co.jp/technology/%e3%80%90%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e5%88%9d%e5%bf%83%e8%80%85%e5%bf%85%e8%aa%ad%e3%80%91%e8%aa%b0%e3%81%a7%e3%82%82%e3%81%a7%e3%81%8d%e3%82%8b%e3%82%a8%e3%83%a9/