特集:後編 いま、知っておくべきJavaテクノロジー 2004dev Java(3/6 ページ)

» 2004年09月30日 17時17分 公開
[阿島哲夫(カサレアル),ITmedia]

設計の定石をカタログ化する「デザインパターン」

 デザインパターンとは、設計の定石をカタログ化したものだ。よく知られているものに、GoFパターン(Gang of Fourによる23のパターン)、J2EEパターンなどがある。各カタログにはそれぞれ「××パターン」などの名前が付けられている。

 将来の拡張性やメンテナンスを考慮した、良いアプリケーション設計を行うよう心がけると、保守性、再利用性も考慮に入れる必要がある。

 その場合、いろいろ試行錯誤してそれらの問題を解決する設計手法を独自に作り出すしてもよいが、デザインパターンにひと通り目を通してほしい。先人の経験により蓄積し、洗練された数々の設計パターンが存在するからだ。

 デザインパターンには、デザインパターンを知る者の間で意思疎通が図りやすくなり、他者の記述したプログラムを理解しやすくなるというメリットがある。設計プロセスのスタンダードなのだ。

開発効率を上げるためのツール利用「統合開発環境」がトレンドに

 効率よく作業を行うには必要と言われる統合開発環境。その名の通り、プロジェクトとしての開発に必要な開発関連ツールが統合されているツールのことだ。また、中心となる統合開発環境(IDE)の利用や、Ant、XDoclet、JUnitなどのツールを使うのがよい。

 ある程度Javaコードの記述に経験がある開発者であれば、Javaソースコードの編集、コンパイル、ビルドなどを行う開発環境には何を使っているだろうか?

 もちろん、テキストエディタでソースコードを編集し、コマンドラインからjavacコマンドを使ってコンパイルを行っても構わないが、効率よく作業を行うためにはApache AntやIDE(統合開発環境)を利用したい。いちばんの理由は、EJBに代表されるように、Javaの開発環境はますます複雑化する傾向にあり、すべてをエディタのみで記述するのは現実的でないからだ。

 また、作成したプログラムを繰り返しテストする際には「JUnit」が欠かせないツールとして知られ、「XDoclet」を使ってソースコードや設定ファイル類の自動生成を行えば、開発効率は格段にアップする。XDocletについては、dev Java特集の「特集:第3回 Strutsをチーム開発に生かす「XDoclet」の活用」が参考になる。ほかにも、Struts関連の特集を拡大中だ

 Antはビルド、デプロイ、ファイルやディレクトリのコピー、削除など、開発に必要な操作を自動化するためのツールだ。コマンドラインから操作するのが基本だが、アプリケーションサーバ製品やIDEのバックエンドで動作させる使い方も増えてきている(参考:http://ant.apache.org/)。

IDEは商用、オープンソース問わず全盛に

 IDE(統合開発環境)は、ソースコードエディタ、コンパイラ、デプロイツールなど、開発に必要なものをひとつのプラットフォーム(ソフトウェア)に統合し、GUIインタフェースから操作できるように考えられているツールだ。オープンソースソフトウェア(OSS)で著名なのはEclipseであり、dev Java特集でも幾つかのテーマを掲載している「Sunを隠すEclipseの真価」。

 統合開発環境のいちばんのメリットは、開発に必要なツール類がひとつの環境に統合され、シームレスに連携するため開発効率が高くなることだ

 IDEは、ボーランドが先導して以前から存在していたが、比較的動作処理が重く、価格が高いなどの理由からそれほど普及していなかった。しかし、近年は開発環境に使われるクライアントPCのスペックアップや、JVMの高速化、オープンソースによるIDEの提供などが追い風となり、急速に広まってきている(表8)。

表8■主なIDE(統合開発環境)製品
製 品 ベンダー 説    明 関連
記事
Eclipse eclipse.org オープンソース。元はIBMとOTIが開発した
WebSphere Application Developer IBM Eclipseをベースに独自機能を追加したもの
NetBeans netbeans.org オープンソース。元はSunMicrosystemsが開発
Sun Java Studio Creator Sun Microsystems NetBeansをベースに独自機能を追加したもの
JBuilder Borland 最下位エディションは無償提供されている
JDeveloper Oracle オラクルのアプリケーションサーバやデータベース製品との親和性が高い

JUnitに代表されるテストの自動化

 アプリケーションは作成したらテストを行わなければならない。オブジェクト指向にマッチした開発手法の中には、テストファーストという開発手法がある

 テストファーストはまずテストパターンを作成し、そのテストに合格するようにプログラムを実装していくスタイル開発だ。そのような場合、ユニットテストはプログラムを少し書き進めるたびに行うので何十回、何百回と行うことになる

 しかし、単体テスト(ユニットテスト)を繰り返し実行するのは単純作業なため、自動化するツールが「JUnit」というわけだ。JUnitは、オープンソースとして提供されている(http://www.junit.org/)。

 JUnitは基本的にはコマンドラインから操作するツールだが、Javaアプリケーション開発者の間ではデファクトスタンダードとなっており、Antや多くのIDEと連携できるようになっている。AntやIDEなどの開発ツールの使い方を覚えたら、ぜひJUnitの使い方も身につけたい。dev Javaでも2004年9月現在、特集掲載を予定している。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ