一般的な英単語を使う、Javaプログラミングで、わかりやすい変数名の付け方
Javaプログラミングにおいて、「変数の働き」をわかりやすくするには、どんな点に気をつけたらいいですか?
Javaプログラミングの変数名を付ける際、一般的な英単語を使いましょう。
英単語が表す意味から、「変数の働き」を予想しやすいからです。
ちょっと面倒でも、一般的な英単語を使って変数名を付けるようにしてください。
そうしたら、他のプログラマーにとっても理解しやすいJavaソースコードになります。
一般的な英単語を使う、Javaプログラミングにおける、わかりやすい変数名の付け方
一般的な英単語の意味は、既存の英語辞書などで調べやすいです。
なので一般的な英単語を使って変数名を付けると、その単語の意味から、「変数の働き」を理解するのに役立ちます。
英単語を使って変数名を付ける例
以下に、英単語を使って変数名を付ける例を書きます。
ActionMapping mapping
mappingが、英単語です。
このように英単語を使うと、その単語の意味を、以下のような辞書やドキュメントで調べられます。
- 英語辞書
- コンピュータ用語辞典
- Java APIドキュメント
調べた英単語の意味より、「変数が取り扱う情報」や「変数の働き」について、より理解できる可能性があります。
変数名の英単語mappingから、「変数の働き」を予想する例
英単語mappingによって、「変数の働き」をある程度予想できます。
mappingが、Java2 APIドキュメントのjava.util.HashMapクラスのMapと似ている言葉だと予想します。
するとこのmapping変数は、たぶん「何かと何かの情報の対応」、「キー」と「値」の対応を取り扱っている変数だと、予想できます。
参考:Java2SE 1.4のドキュメントなど。
しかし英単語mappingによって、「変数の働き」を理解できない場合もあります。
英語の辞書では、mappingは地図作成や数学の関数という意味があります。
「地図作成」という意味からは、「キー」と「値」のマッピングを予想できないです。
変数名に英単語を使わない例
英単語を使わないで変数名を付ける場合についてです。
以下に、わざと単語を使わないで変数名を付けてみます。
例:ActionMapping actMpg
この変数名actMpgからは、どんな情報を取り扱っているのか?
他の人にはわからないことが、多いです。
既存の辞書やドキュメントで調べても、
このactMpgが何を意味するのか、何を処理する変数なのか、わかりにくいと思います。
Javaプログラミングで、クラス名を使って変数名を付ける
英単語を使って変数名を付けるのと同じように、クラス名を使って変数名を付けるのも良いです。
クラス名を参考に変数名を付けると、変数名からクラス名(クラスの役割)を推測できます。
よって、その変数が「どんな情報」を取り扱っているのか、予想しやすいと思います。
クラス名を使って変数名を付ける例
以下に、クラス名を使って変数名を付けている例を書きます。
なお、プログラム(メソッド)の意味を理解する必要は、ありません。
public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
....
}
メソッドの引数名(変数名)では、それぞれクラス名の一部分の「英単語」を使用しています。
変数名がクラス名の一部分なので、その変数が何の情報を取り扱っているのか、少し予想できると思います。
つまり、変数名から「変数の働き」を予想できるので、プログラム処理を理解するのに役立つ、と思います。
例:引数名(変数名)が、mappingの場合。
このmapping変数は、ActionMappingクラスの変数だと、予想できます。
そして、ActionMappingクラスに関する情報を取り扱っている変数と予想できます。
なお、ActionMappingクラスは、Strutsフレームワークにおいて、
リクエストを処理するActionクラスとJSPファイルを紐付けるためのマッピング情報を保持するクラスです。
ActionMappingクラスの働きがわかれば、このmapping変数の働きもわかります。
※ここまでの記事、2003年6月当時の記事になります。
ソースコードの可読性や保守性を良くする、わかりやすい変数名
Javaプログラミングでは、変数名のわかりやすさは、ソースコードの可読性や保守性に大きく影響します。
変数名がわかりやすいほど、ソースコードの可読性や保守性が向上します。
変数名を付ける時は、以下のような点を考慮しましょう。
変数の役割や意味を表す変数名にする
変数名は、変数の役割や意味を表す名前にします。
例えば、以下のような変数名にします。
年齢を表す変数なら、ageという変数名にします。
一般的な略語や慣用的な表現を、変数名に使う
一般的な略語や慣用的な表現を、変数名に使います。
例えば、for文のインデックスを表す変数に対してなら、略語のiを変数名に使えます。
プログラマーの方なら、for文で使われているiという変数は、インデックスを表すと理解できるからです。
慣用的な表現では、リストを表す変数ならlistという変数名を使えます。
5文字から15文字くらいの変数名にする
長すぎる変数名や、短すぎる変数名を、なるべく使わないようにします。
長すぎる名前は、読みにくいです。
短すぎる名前は、意味がわかりにくいからです。
変数名の適切な長さは、変数のスコープや使用頻度によって異なりますが、
一般的には、5文字から15文字程度が目安です。
だけど個人的には、変数名の長さを5文字から15文字にするのは、難しい場合があると思います。
なぜかと言うと、自身の英語力が不足しているからです。
変数名において、大文字と小文字を使い分ける
変数名において、大文字と小文字の使い分けをします。
大文字と小文字を適切に使い分けた変数名は、ソースコードの可読性を向上します。
Javaプログラミングでは、変数名は原則として小文字で始めます。
定数やクラス名などは、大文字で始めます。
また、複数の単語からなる変数名では、単語の区切りを示すためにローワーキャメルケース(例:firstName)を使います。
変数名において、予約語やキーワードと同じ名前を使わない
変数名において、予約語やキーワードと同じ名前を使わないようにします。
Javaでは、特定の意味や機能を持つ単語が、予約語やキーワードとして定められています。
例えば、intやclassやforなどです。
これらの単語は、変数名として使うことができません。