一般的な英単語を使う、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などです。
これらの単語は、変数名として使うことができません。

【まとめ記事】へのリンク

【まとめ記事】Javaアプリの品質を保つため、Javaソースコードを書くための工夫

Javaソースコードを正しく書くための、ちょっとした工夫について、ご紹介しています。 変数の寿命を限定する書き方。 肯定的な条件を優先して条件分岐する書き方。 クラス…