命名規則 基礎編第8回


20140218

データの話も終わって、これから変数や関数といったプログラミングっぽい話をしていきますが、最初に命名規則(Naming Convention)について話しておこうと思います。

プログラムのコード例などを示すときに、当たり前のように変数personName、関数getLastNameのように表記していきますが、これらの名前には簡単ですがちゃんとした規則があります。この規則を覚えておくと、次のようなメリットがあります。

  • 読みやすく見やすいプログラムコードを書ける
  • 変数や関数を判別しやすく、その意味を理解しやすい
  • エラー(バグ)を防ぎやすい
  • 他人のコードを理解しやすい(規則に従っている場合)

命名規則はプログラミングのときだけでなく、普段ファイルやフォルダに名前を付けるときにも有効です。

ハンガリアン記法

「sPersonName」や「iPersonAge」のように変数名などに接頭辞を加える方法です。この例では「PersonName」に文字列であることを示す「s」、「PersonAge」に整数の「i」が接頭辞として加えられています。この記法には「アプリケーションハンガリアン」と「システムハンガリアン」があります。

現在は非主流になっていますが、以前の参考書や公開されているコードなどではハンガリアン記法を使用したものがありますので、このような表記があるということだけでも覚えておいてください。

スネークケース

「person_name」や「get_last_name」のように単語間をアンダースコアで結ぶ表記法です。蛇に似た形になるため「スネークケース」と呼ばれます。この表記でファイル名をつける方も多いと思います。やはり、現在はあまり使用されなくなっています。

キャメルケース

「personName」のように各単語の先頭を大文字にして、繋げて表記する方法です。この例では連結した複合語の先頭だけが小文字になっています。この大文字の部分がラクダのこぶに見えるためキャメルケースと呼ばれます。キャメルケースには2つのパターンがあります。

  • アッパーキャメルケース(Upper Camel case):複合語の先頭が大文字。PersonFirstNameなど。パスカルケースとも呼ばれます。
  • ローワーキャメルケース(Lower Camel case):複合語の先頭が小文字。personFirstNameなど。通常、キャメルケースはこのローワーキャメルケースを指し、現在では主流の表記法となっています。

名前の付け方

名前は一目でそれが何か分かるように付けます。数行程度のコードを書くとき、「変数 x」や「定数 a」としがちですが、普段からきちんとした名前を付けるようにしたいものです。基本的に、その意味を説明するような名前を付けます

変数や定数などの場合、

customerName
orderNo
copiedText

といった名前をつけると、それが何を指しているのか見当が付きます。

関数などでは、

getUserFile
setTargetLanguage
readOneLine

のように「動詞+目的語」とするのが一般的です。

語句を結合することで長くなったしまい、かえって読みにくくなることがあります。そのような場合は省略形を使うこともあります(「setTargetLang」など)。

注意点

  • 初心者向けの本に例として「hankaku」や「kokyaku」などのローマ字を使った変数が見られることがありますが、決して読みやすいとはいえず感心しません。英語の中に混じって、かえって混乱すると思います。
  • 一貫性があること。「custName」と「customerName」が混在すると、混乱しやすくなります。
  • スペルミスをしないこと。意外と多いのがスペルミスです。エラーも発生しやすくなりますが、なにより格好悪いですね

まとめ

私がプログラムを学んだときは、ハンガリアン記法とスネークケースを使っていました。そのため、最初キャメルケースには違和感がありましたが、徐々に慣れてきました。ただ、表記法の名前はよく忘れて、なかなか思い出せず、ごちゃ混ぜになってしまいます。

命名規則は絶対守らなければいけないものではありません。ほぼ自由に名前を付けることができます。しかし、きちんとプログラムを学ぼうとするのであれば、命名規則に従った名前を付けるようにすべきです。読みやすく理解しやすいコードを書くためや本に記載されているコードを理解するためには、命名規則を知ることは大変重要です。

まずは、見やすいコードを書くように心懸けましょう。

次は、変数と定数の話をします。

では、また。

コメントしてみる