|
|
前のページ 1 2 3 次のページ
|
|
大文字・小文字の違いで名前を区別しない(N_GNR002)
|
Javaの仕様で大文字と小文字は別の文字として扱われますが、その違いだけで区別される名前をつけないで下さい。ちょっとしたマチガイの温床となります。
例えば、こんな変数が定義してあったらどうでしょうか?
|
private int number;
private int Number;
|
|
これでは、"number"と"Number"のどちらが何の用途に使われるかわかりません。以下のように定義すれば、一目で用途がわかります。
|
private int carNumber;
private int trainNumber;
|
|
役割に応じた名前をつけて、明確に区別すべきです。大事なことは、プロジェクトメンバーが素早く間違いなく読み書きできることです。「読みやすく、誤解の生じにくいネーミング」がすべての基本となります。
|
パッケージ
|
次に、パッケージの命名規約を解説します。パッケージ名は誰が見ても、何のパッケージかわかるように命名します。知っている人だけがわかるような名称ではなく、初めて見た人でもわかるように命名すべきです。
|
パッケージ名はすべて小文字に(N_PKG001)
|
特に取り決めがない限り、パッケージ名はすべて小文字で統一してください。これは、Javaの一般的なルールです。
一般的にJavaでは、パッケージ名は小文字で統一、クラス名は先頭のみ大文字とされています。これはSun Microsystemsの定めたコーディングルールです。クラスをFQDN(Fully Qualified Domain Name:完全修飾ドメイン名)で表記した場合、パッケージ名がすべて小文字で統一されていると、下の例のように先頭が大文字のクラスがパッと見つかり、大変便利です。
|
java.sample.package.SampleClass
|
|
表記の統一は煩わしく、無意味に思われがちですが、プログラム全体が格段に見やすくなります。最低限のルールを設けることをお奨めします。
|
パッケージ名は書略せずに、意味のある名前に(N_PKG002、N_PKG003)
|
パッケージ名は、多少長くなってもできるだけ省略せず、わかりやすい名前を使用するようにしてください。
パッケージ名に"a00001"といったコード番号や"class → cls"、"framework → fw"といった省略形を使用しがちですが、"a00001"という名前では対応表でもなければまるで意味がわかりませんし、省略形も同じチームの人にしか通じません。常に第三者から見てわかりやすいネーミングを心掛けるべきです。第三者が見てわかりやすいネーミングは、後から自分が見直してもわかりやすいネーミングとなります。
「意味のある名前を使うこと」「省略しないこと」は、「ドキュメントに頼らず、文章のように通読して意味のとれるプログラム」とするためです。またこれらは、ネーミング規約を通して一貫したポリシーです。
|
サブパッケージ名の重複は可能(N_PKG004)
|
親パッケージ名が異なっているのであれば、同一サブパッケージ名が存在してもかまいません。異なるパッケージに似たような機能のサブパッケージを持たせることはめずらしくありません。
「預金」パッケージと「融資」パッケージがあったとします。どちらにも「口座管理」の機能をサブパッケージとして持たせる場合、わざわざ異なる名称をつけるよりも、同じような機能は同じ名前をつけたほうがわかりやすく整理できます。例えば、以下のような具合です。このように、似通った機能は同じ名前と階層構造で整理するのがよいと思います。
|
預金 -+- 口座管理 -+- 口座開設
+- 口座変更
+- 口座終了
|
|
融資 -+- 口座管理 -+- 口座開設
+- 口座変更
+- 口座終了
|
|
前のページ 1 2 3 次のページ
|
|
|
|
著者プロフィール
株式会社電通国際情報サービス 高安 厚思
株式会社電通国際情報サービス 開発技術センター
Java(J2EE)/オブジェクト指向の研究開発やプロジェクト支援、開発コンサルティングに従事。モデル、アーキテクチャ、プロセスが探求対象。今回は Javaコーディング規約2004の仕掛け人。
|
|
著者プロフィール
株式会社電通国際情報サービス 東田 健宏
株式会社電通国際情報サービス 開発技術センター
CTI、Webアプリの開発経験を経て、現在は主にプロジェクトマネジメント支援、プロセスエンジニアリング、ソフトウェア工学研究開発に従事。最近はコーチング、ファシリテーションといったヒューマン系スキルに興味を持ち日々修得に努めている。
|
|
著者プロフィール
アイエックス・ナレッジ株式会社 河野 弥恵
アイエックス・ナレッジ株式会社 第1事業部所属
主にCOBOL、PL/1等のシステム開発に従事。コーディングに限らず、誰もが気持ちよく守れる規約を模索中。
|
|
|
|