|
||||||||||||||||||||||||||
|
1 2 3 4 次のページ |
||||||||||||||||||||||||||
| はじめに | ||||||||||||||||||||||||||
|
前回まではネーミング規約について説明してきましたが、今回からはコーディング規約について説明していきます。 皆さんが経験してきたプロジェクトにはコーディング規約が存在していましたか。存在しなかった場合には、次のようなことに対して悩んで無駄な時間を費やしてしまった経験はないでしょうか。
|
||||||||||||||||||||||||||
|
表1:コーディングの悩み所 |
||||||||||||||||||||||||||
| 今回はこのような悩みを解決するために、コーディングに関する規約の内容を説明していきます。また、設計方法に関わるような少し高度な規約も入っていますので、今後の設計を行う際のヒントとして役立ててください。 |
||||||||||||||||||||||||||
|
本連載で紹介する規約に関しては、規約名のみを記述しています。規約そのものは、以下のURLからダウンロードして確認してください。
http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf |
||||||||||||||||||||||||||
| 全般 | ||||||||||||||||||||||||||
|
ここでは、コーディングするうえで基本となる規約について説明します。当たり前と思うこともありますが、実際のプロジェクトでは守られていない場合があります。ネーミング規約でもそうでしたが、規約を守ることは可読性をあげるだけではなく、バグを減らし、修正を容易にします。 |
||||||||||||||||||||||||||
| オブジェクトの参照にはインターフェースを利用せよ(C_GNR000) | ||||||||||||||||||||||||||
|
オブジェクトを参照する際は、そのオブジェクトの実装クラスを用いて宣言できます。しかし、実装クラスに適切なインターフェースが存在している場合は、必ずインターフェースを用いて宣言してください。 この規約は本連載で紹介するすべてのコーディング規約の中でも、もっともわかりにくい規約の1つかもしれません。では、実装クラスをコードに書き込むことによってどのような不都合が生じるのでしょうか。 例えば、プログラムの中で変数や引数をすべて"ArrayList"で宣言したと考えます。このプログラムが完成した後で、実行速度の向上のために"ArrayList"を利用していた箇所のいくつかを"LinkedList"クラスに変更することが必要になるかもしれません。このような場合には"ArrayList"クラスで宣言している変数や引数をすべて探しだし、その都度"LinkedList"クラスに変更するかどうかをチェックしなくてはなりません。 悪い例(ArrayListで宣言した場合) |
||||||||||||||||||||||||||
import java.util.*;
|
||||||||||||||||||||||||||
良い例(Listで宣言した場合)
import java.util.*;
|
||||||||||||||||||||||||||
| もし実装クラスである"ArrayList"のかわりに、"List"インターフェースで宣言していれば、変更に関する手間を減らすことが可能になります。 このように、オブジェクトの参照にインターフェースを利用せずに実装クラスを直接書いてしまうと、実装の変更に影響をきたします。よって、オブジェクトの参照にはインターフェースを利用するようにしてください。 なお、第2回「コーディングレベルを上げるためには?」のレベル5のサンプルでは、インターフェースを導入することによってプログラムの柔軟性/拡張性を向上させていました。Javaにおいて仕様変更に強いコードを実装するには、インターフェースが非常に重要な役割を果たしていることがわかるかと思います。 |
||||||||||||||||||||||||||
|
1 2 3 4 次のページ |
||||||||||||||||||||||||||
|
参考文献など
Javaコーディング規約2004は以下のサイトおよび書籍として発表しています。本連載と共に参考にしてください。 「Javaコーディング規約2004」 http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf 「オブジェクト倶楽部」 Javaコーディング規約2004は、オブジェクト倶楽部で公開して頂いております。 http://www.objectclub.jp/ 「超図解 Java ルールブック」 Javaコーディング規約が「超図解 Java ルールブック」という名前で書籍になりました。規約の詳しい内容に関しては本書籍をご覧ください。 http://www.x-media.co.jp/xbook/index.cfm?ID=6 Javaコーディング規約を理解するに際しての参考サイトをご紹介します。 「Code Conventions for the Java Programming Language」 http://java.sun.com/docs/codeconv/ ※日本語訳を提供しているページ http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/ Java コーディング規約を理解するに際しての参考書籍をご紹介します。 「Java の格言」 「Java の鉄則」 「リファクタリング - プログラミングの体質改善テクニック」 「The Elements of Java Style」 「Effective Java - プログラミング言語ガイド」 「Essential Java Style」 |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||

