命名規則 【naming convention】 ネーミング規約 / 命名規約 / nomenclature
概要
命名規則(naming convention)とは、変数名などコンピュータプログラムのソースコード上で開発者が名付ける識別名についての決まりごと。言語仕様や開発環境などによって定められているものと、ソフトウェア開発を行う組織やチームが内部的に定めるものがある。クラス名やメソッド名、関数名、定数名、変数名など、プログラム上で定義して扱う対象に名前を付ける機会は多くあるが、複数人で開発を行う場合などにそれぞれが異なる考え方や基準で名前を付けると、互いのコードの可読性や視認性が損なわれ、開発効率や保守性の悪化につながる。名前の衝突や使い回しなどでバグが生じることもある。
そこで、名前の付け方に一貫したルールを設け、これに従って識別名を命名するようにするのが命名規則である。よく定義された命名規則に従うと、対象の意味や機能、使い方などが名前からある程度推測できるようになり、コード自体がドキュメントの役割を果たすようになる。検索や置換、ツールによる自動化なども行いやすくなり、デバッグや修正、追加開発の効率も向上する。
どのような規則を定めるかはプログラミング言語や開発環境の制約、組織やメンバーの考え方や方針によって様々であり、必ずしも良し悪しや優劣を論じられるものではなく、規格化された標準などがあるわけでもない。言語やフレームワークによっては仕様上定められている命名規則が存在する場合もある。
よく定められる項目としては、「isClickable()」のように先頭や末尾に付け加える特定の意味を持つ接頭辞や接尾辞(ハンガリアン記法)、大文字と小文字の使い方や組み合わせ方、複数単語の連結の仕方などがある。古くはメモリ容量節約などのため、名前の文字数の制限が定められることもあった。
キャメルケースとスネークケース
英語の複合語や、フレーズ(句)や文を一語に繋げて表記する際、“JavaScript” のように各構成語の先頭を大文字にする方式を「キャメルケース」(camel case)という。大文字部分が上に出っ張っているのをラクダ(camel)のこぶに例えた呼称である。
このうち、“getDate” のように先頭は小文字とする方式を「ローワーキャメルケース」(LCC:Lower Camel Case)、“GetWindow” のように先頭も大文字とする方式を「アッパーキャメルケース」(UCC:Upper Camel Case)あるいは「パスカルケース」(Pascal Case)という。
一方、「file_get_contents」のように単語間のスペース(空白文字)をアンダースコア(_)に置き換える方式を「スネークケース」(snake case)という。大文字がなく、長く一連なりに文字が続く様を地を這う蛇(snake)になぞらている。