変数、フィールド、またはクラスを正確に記述する完全記述子を使用します。
たとえば、firstName、grandTotal、CorporateCustomer などの名前を使用します。x1、y1、fn などは、短いので入力は簡単ですが、それらが何を表しているのか手掛かりがないので、理解や、保守、拡張が困難なコードができ上がってしまいます。
エンド・ユーザーがクライアントをカスタマーと呼んでいる場合は、そのクラスに 「クライアント (Client)」という用語ではなく、「カスタマー (Customer)」という用語を使用してください。完璧にふさわしい用語が業界や分野にすでに定着しているのに、多くのデベロッパーが、それらの概念に対して汎用的な用語を使ってしまうという間違いを犯しています。
一般的には小文字を使用すべきですが、クラス名とインターフェース名の先頭文字は大文字にし、またノン・イニシャル・ワードの先頭文字も大文字にします。
つまり、短縮形 (省略語) のリストをつくり、それらを賢く選択し、一貫性をもって使用する必要があります。たとえば、number という語の短縮形を使用したい場合は、nbr、no、num などの中から 1 つを選び (どれでもかまいません) 、選んだ短縮形を文書化し、その省略形だけを使うようにします。
長い名前は避けます (15 文字以内にするのをお勧めします)
PhysicalOrVirtualProductOrService というクラス名は、作ったときはぴったりのクラス名のように思えたかもしれませんが (もちろん、この例では、わざと長くしています)、この名前では長すぎるので、Offering のようなもっと短い名前への変更を検討する必要があります。
あまり似通った名前や、大文字小文字が違うだけの名前は避けます
変数名persistentObject とpersistentObjects は、一緒に使うべきではありません。anSqlDatabase とanSQLDatabase にも同じことが言えます。
名前には、しばしば標準的な省略語が含まれます (たとえば、Standard Query Language に対する SQL)。属性についてのsqlDatabase、あるいはクラスについてのSqlDatabase といった名前は、sQLDatabase やSQLDatabase などよりも読みやすくなります。
命名規則と適切なコーディングの仕方について詳しくは、以下の資料を参照してください。
- Building Object Applications That Work: Your Step-By-Step Handbook for Developing Robust Systems with Object Technology、Scott W. Ambler 著
- The Object Primer 2nd Edition、Scott W. Ambler 著
- The Java FAQ、Jonni Kanerva 著
- The Elements of Java Style、Alan Vermeulen、Scott W. Ambler、Greg Bumgardner、Eldon Metz、Trevor Misfeldt、Jim Shur、および Patrick Thompson 共著 、
Scott W. Ambler は、オブジェクト指向ソフトウェア処理の指導、アーキテクチャー・モデリング、および Enterprise JavaBeans (EJB) 開発を専門とするコンサルタント会社である、Ronin International の社長です。彼は、オブジェクト指向開発に関する本を執筆あるいは共同執筆しています。最近刊行されたものとしては、この記事で要約された主題を詳しく論じた The Object Primer 2nd Edition などがあります。彼の連絡先は www.ambysoft.com にあるサイトです。