プログラミングには様々なお作法や暗黙的なルール、パターンがあります。
プログラムの命名規則やフォーマットなどについてのお作法やルールをまとめたものがコーディング規約になります。
このルールを知らないと他人に正しくコードを読んでもらえなかったり、チーム内で自分だけ違う書き方をしてしまうということになります。
本ブログでは、これまでにJavaScript、Python、Java、Ruby、Goのコーディング規約を紹介しました。
その中で、命名規則にはキャメルケースやスネークケースなどのスタイルがよく使われていました。
そこで、本記事ではプログラミングの命名規則で使われるスタイルをまとめ、改めて命名規則についてまとめます。
スタイルの名前と意味を知っておくと、共通の認識で相手とコミュニケーションがとれますので、ぜひ覚えてください。
プログラミングの命名規則まとめ
プログラミングの命名規則に使われるスタイルには以下のようなものがあります。
- キャメルケース : camelCase
- パスカルケース : PascalCase
- スネークケース : snake_case
- コンスタントケース : CONSTANT_CASE
- チェインケース : chain-case
- ケバブケース : kebab-case
- トレインケース : Train-Case
キャメルケース : camelCase
キャメルケースとは、複数の単語(複合語)を一つの綴り(単語間のスペースをとって一単語にする)にして、各単語の最初を大文字で書くスタイルです。
各単語の間に記号は入りません。
例えば、「camel case」という複合語であれば、
camelCase CamelCase
と表します。
綴りの先頭を小文字で表す場合(上記例の前者)を、特にローワーキャメルケース、または単にキャメルケースと呼びます。
綴りの先頭を大文字で表す場合(上記例の後者)を、特にアッパーキャメルケース、またはパスカルケースと呼びます。
ですので、一般的にキャメルケースと言えば、先頭は小文字で、その後の各単語の先頭は大文字というスタイルを意味します。
camelとはラクダを意味しますが、各単語先頭の大文字がラクダのコブのように見えることから命名されたそうです。
プログラミングの命名規則では、以下の部分にキャメルケースが使われます。
(ここでのキャメルケースは、ローワーキャメルケースを表します)
言語 | 利用場面 |
---|---|
JavaScript
|
関数名、変数名、メソッド名、名前空間
|
Python
|
なし
|
Java
|
メソッド名、フィールド名、パラメータ名、ローカル変数名
|
Ruby
|
なし
|
Go
|
非公開メソッド名、非公開フィールド名
|
パスカルケース : PascalCase
パスカルケースとは、前述の通り、アッパーキャメルケースのことを表します。
プログラミング言語のPascalに使われていた記述方法であることが由来だそうです。
プログラミングの命名規則では、以下の部分にパスカルケースが使われます。
言語 | 利用場面 |
---|---|
JavaScript
|
クラス名、Enum名
|
Python
|
クラス名
|
Java
|
クラス名
|
Ruby
|
クラス名、モジュール名
|
Go
|
公開メソッド名、公開フィールド名
|
スネークケース : snake_case
スネークケースとは、複合語の各単語をアンダースコアで区切って書くスタイルです。
例えば、「snake case」という複合語であれば、
snake_case SNAKE_CASE
と表します。
すべてを小文字で表す場合(上記例の前者)を、特にローワースネークケース、または単にスネークケースと呼びます。
すべてを大文字で表す場合(上記例の後者)を、特にアッパースネークケース、またはコンスタントケースと呼びます。
ですので、一般的にスネークケースと言えば、すべて小文字で表すスタイルの方を意味します。
snakeとはヘビを意味しますが、各単語がアンダースコアで繋がる様子がヘビのように見えることから命名されたそうです。
プログラミングの命名規則では、以下の部分にスネークケースが使われます。
(ここでのスネークケースは、ローワースネークケースを表します)
言語 | 利用場面 |
---|---|
JavaScript
|
なし
|
Python
|
モジュール名、関数名、変数名、メソッド名、インスタンス変数
|
Java
|
なし
|
Ruby
|
変数名
|
Go
|
なし
|
コンスタントケース : CONSTANT_CASE
コンスタントケースとは、前述の通り、アッパースネークケースのことを表します。
コンスタント(定数)によく使われる記述方法であることが由来だそうです。
プログラミングの命名規則では、以下の部分にコンスタントケースが使われます。
言語 | 利用場面 |
---|---|
JavaScript
|
定数名
|
Python
|
定数名
|
Java
|
定数名
|
Ruby
|
定数名
|
Go
|
なし
|
チェインケース : chain-case
チェインケースとは、複合語の各単語をハイフンで区切って書くスタイルです。
例えば、「chain case」という複合語であれば、
chain-case
と表します。
基本的にすべて小文字で表し、チェインケースと同じ記述法を別名でケバブケースと呼んだりします。
chainとは鎖を意味しますが、各単語が鎖で繋がる様子から命名されたそうです。
プログラミングの命名規則では、以下の部分にチェインケースが使われます。
言語 | 利用場面 |
---|---|
JavaScript
|
ファイル名
|
Python
|
なし
|
Java
|
なし
|
Ruby
|
ファイル名
|
Go
|
なし
|
ケバブケース : kebab-case
ケバブケースとは、上述の通り、チェインケースのことを表します。
ケバブとは肉や野菜などをローストして調理する料理ですが、各単語をハイフンで串刺しにしている様子から命名されたそうです。
トレインケース : Train-Case
トレインケースとは、チェインケースの各単語を大文字で記述するスタイルです。
トレイン(電車)の車両が鎖で繋がっている様子から命名されたそうです。
今回テーマにしているプログラミング言語では、トレインケースを使った命名規則はありませんでした。
一般的な命名規則に従って他人に正しく読んでもらえるコードを書こう
プログラムは文章と同じく、他人に読んでもらうことを前提として記述することが重要です。
他人に勘違いさせずに読んでもらうためには、一般的なルールを守ることが不可欠です。
組織やプロジェクトによって、細かい部分の違いはあれど、命名規則の部分は多くの場合、一般的なコーディング規約に従っていると思います。
各言語のコーディング規約の詳細については、下記の関連リンクよりご覧ください。
また、コードを読みやすくするためのテクニックが詰まった書籍『リーダブルコード』を読んでもらうこともおすすめです。
当ブログでも以前に紹介していますので、気になる方はぜひチェックしてみてください。
今回はプログラミングの命名規則について紹介しました。
参考になれば幸いです。
コメント