TOP> 比嘉 康雄氏の講演「設定ファイルは死すべし!!!」
2006 JavaOne Conference
2006 JavaOne Conferenceレポート
2006 JavaOne Conferenceレポート

比嘉 康雄氏の講演「設定ファイルは死すべし!!!」
会場:サンフランシスコ Moscone Center
記者:ThinkIT編集局   2006/5/24
比嘉 康雄氏
比嘉 康雄氏

設定ファイルは死すべし!!!

   インタビューを通じてエンジニアのキャリアと内面に迫る「キーエンジニアの真実」に登場し、Seaser2についての連載を執筆している、Seasar Foundation代表である比嘉 康雄氏の講演が最終セッションで行われた。「DI:Configuration Files Must DIe!!!(DI:設定ファイルは死すべし!!!)」というタイトルのセッションで講演を行った。比嘉氏は「設定ファイルを書くのは面倒であり、それが好きなエンジニアはいないでしょう。しかし、現在のJavaの世界は設定ファイルで溢れており、XML地獄といわれています」と、設定ファイルを取り巻く問題点を提起した。

   WebやDIの代表的なフレームワークにおいて、設定ファイルの肥大化は多くのエンジニアに頭を抱えさせている。比嘉氏によれば、Java5から登場したアノテーション技術を用いればソースコードに設定情報を埋め込むことができるので、その問題を解決できるという。

   しかし、設定情報を記述する箇所が設定ファイルからソースコードに移っただけなので、根本的な解決ではないという。アノテーションは設定ファイルに記述する設定情報を少なくすることを可能としたが、ソースコードも最小限の情報だけ記述する「Less Configration」というコンセプトをSeasar Foundationは打ち出すという。


開発規模が大きくなっても設定ファイルを書く必要はない

   比嘉氏は「Less Configration」こそフレームワークのあるべき姿といい、「Convention over Configration(適切な規約を守っていれば、設定を特にしなくてもフレームワークが適切な設定をしてくれる)」と「Configuration by Exception(例外な状況でのみ、明示的に設定を行う)」の2点が重要だと訴えた。

   比嘉氏はサンプルを用いたデモによって、Seasae2の自動化によって開発規模が大きくなっても設定情報をほとんど書く必要がないことを示した。「最初にクラス名のパターンを設定しておけば、後でクラスが増えても設定ファイルに情報を追加する必要がありません」比嘉氏はXDocletやアノテーションと違ってソースコードに設定ファイルを埋め込むことがないので、設定情報の変更にも自動化で対応できると自信をみせた。

   複数のオブジェクトが1つのインターフェースを実装している場合など、「Convention over Configration」が機能しない場合は「Configuration by Exception」が必要だと比嘉氏はいう。

   明示的な設定には、設定ファイルやアノテーションを使用することで可能になるという。アノテーションはJava5からの機能だが、Java5のアノテーションの仕様を実装している「backport175のEclipseプラグイン」を使用することにより、Java1.3や1.4でもSeasar2でアノテーションを利用できるという。

   また比嘉氏は「プラグインを利用することによりXDocletなどを使用する場合と違い、コンパイル後に自動的にクラス情報の中にアノテーション情報を入れることができるので、なにか処理を行う必要もなありません」と、ほとんど設定情報を記述しなくてもよいと説明した。


これからは「with EJB」

   最後に比嘉氏は「EoDの観点からSeasar2とEJB(Enterprise Java Bean)3を比較するとEJB3は見劣りするが、DIのよさを取り込んで標準化されたEJB3は仕様が標準化されているので魅力的です」と、Seasar2とEJB3の関係について触れた。

   比嘉氏によれば、標準の仕様に従った方がユーザの資産を守ることができるという。「EJB3という標準仕様があるJava5ではEJB3の仕様に従った方がよく、標準仕様のないJava1.4では「Less Configration」によって進化したDIを利用した方がよいでしょう」とSeasar2とEJB3を考察した。

   それを踏まえた上で、比嘉氏は「劣った機能を無理に使う必要はなく、Seasar2でEJBを利用すればよいのです。Seasar2でのEJB利用はサプリケーションサーバなしでもEJB3が利用できるので、自動テストを簡単に行うことができます。Seasar2のEJB3はデプロイする必要がないため、生産性が大きく向上します」とSeasar2でのEJB利用が最適なアプリケーション開発だと述べた。

   「これからは『without EJB』ではなく、『with EJB』です」

   比嘉氏は最後にSeasar2の展望について触れた。

   海外で中国やインドのエンジニアが台頭する中、日本のエンジニアも比嘉氏のように世界に挑戦していく時代になっているのであろう。比嘉氏に続き、多くの日本のエンジニアも世界に挑戦していってほしい。

キーエンジニアの真実 - ITアーキテクト編
http://www.thinkit.co.jp/free/career/4/3/1.html
パフォーマンス徹底比較!! Seasar2 VS Spring
http://www.thinkit.co.jp/free/article/0605/4/1/