命名規約について。
javaの命名規約って素晴らしいなと。文字のスタイルで何か想像つくし。
十分短く十分長い変数名をスコープごとに使用する。
一般的に、ループカウンタには1文字、条件やループ変数には1単語。
メソッドには1-2単語、クラスには2-3単語、グローバル変数には3-4単語を使用する。
具体的な(specific)名前を使用する。例えば、”value”、”equals”、”data”といった変数名はいかなる場合も有効ではない。
意味のある(meaningful)名前を使用する。変数名は、格納する値を表すのに正確な説明であるべきだ。
変数名を”o_”、”obj_”、”m_”などから始めない。変数名に、自身が変数であると自己言及するタグは必要ない。
自社の命名規約に従い、アプリケーションを一貫した変数名で書く。例えば、txtUserName、lblUserName、cmbSchoolType、といったふうに。
そうしなければ、可読性は下がり、検索/置換ツールは有効ではなくなる。
プログラミング言語の標準に従い、大文字/小文字の文字列を一貫しないまま使用しない。
例えば、 userName、UserName、USER_NAME、m_userName、usernameなどの混在だ。Javaの例を挙げる。
Camel Case(Upper Camel Case)をクラスに使用する。VelocityResponseWriter
Lower Case(Lower Camel Case)をパッケージに使用する。com.company.project.ui
Mixed Case(aka Lower Camel Case)を変数に使用する。studentName
Upper Caseを定数に使用する。MAX_PARAMETER_COUNT = 100
Camel Caseをenumクラスに使用し、Upper Caseをenum値に使用する。
‘_’ を定数とenum値以外のいかなる場所でも使用しない。(これらは定数だ。)
同じ変数を同じクラスの異なるコンテキストで使用しない。
例えば、メソッドとコンストラクタ、クラスなどだ。そうすれば、よりシンプルに理解しやすく保守もしやすくすることができる。
同じ変数を、メソッドや条件などの異なる目的で使用しない。代わりに、新しく別の名前の変数を用意する。このことは、理解しやすさや保守のしやすさにも重要だ。
ASCIIではない文字を変数に使用しない。それらは君のプラットフォームでは動作するかもしれないが、他のプラットフォームでは動作しない可能性がある。
長すぎる変数名を使用しない(50文字とか)。長すぎる名前は醜悪で、読むのが困難なコードだ。その上、いくつかのコンパイラでは文字数制限(character limit)により動作しない。
命名のための自然言語を一つに決めてそれを使用する。
例えば、英語とドイツ語の混在した名前は調和がとれず、読みずらい。
意味のある名前をメソッドに使用する。
名前はメソッドの正確な動作(action)を具体的に表し、大抵の場合、動詞で始まる(createPasswordHashなど)。
自社の命名規約に従い、アプリケーションを一貫したメソッド名で書く。例えば、getTxtUserName()、getLblUserName()、isStudentApproved()などである。そうしなければ、可読性は下がり、検索/置換ツールは有効ではなくなる。
プログラミング言語の標準に従い、大文字/小文字の文字列を一貫させないままで使用しない。例えば、getUserName、GetUserName、getusernameなどの混在だ。Javaの例を挙げる。
Mixed Caseをメソッド名に使用する。 getStudentSchoolType
Mixed Caseをメソッドパラメータに使用する。 setSchoolName(String schoolName)
意味のある名前をメソッドパラメータに使用する。そうすればドキュメントがない場合でも自身をドキュメンテーションすることになる。
変数とメソッドの命名ベストプラクティス15 – 杉風呂2.0 – A Lifelog –
http://d.hatena.ne.jp/suginoy/20120226/p1