Genuitec and Skyway Softwareは、MyEclipse for Spring 8.6のリリースを発表した。最新のリリースには、Spring CoreやAdobe Flex、Spring MVC、GWT、Spring Web Flow、iPhone Webアプリケーションなどの開発を簡単に行える機能が含まれている。
また、このリリースには、アノテーションを使ったSpringの開発やJAX-WSのアーティファクトの生成を容易にするSpring開発用のエディタや、コードアシスタントが含まれる。
InfoQは、新バージョンのプロダクト・マネージャであるNiel Eyde氏に対してインタビューを行った。
InfoQ: MyExlipse for Springの主要機能をどんなものでしょうか。また、どんな問題を解決することを狙って開発されたのでしょうか。
Niel氏: MyEclipse for Springの主要機能の一つは、雛形作成機能(scaffolding)です。この機能は、開発者が最小限のインプットを指定することにより、標準的なアプリケーションパターンを適用してSpringアプリケーションの全て、もしくは主要部分を生成します。さまざまなインプット情報(Java beansやJPAエンティティ、リレーショナルテーブル、WSDL/XML)から、複数のタイプのアプリケーションを生成することが可能です。そのなかには、Spring MVCやSpring Web Flow、Google Web Toolkit (GWT)とSpringの組合わせ、Adobe FlexとSpringの組合わせ、iPhone Webアプリケーションなどが含まれます。MyEclipse for SpringはJAX-WS Webサービスを利用する、もしくは提供する雛形を生成する機能も備えています。その雛形は、規約(WSDL)からでも、コードからでも生成することができます。
雛形生成機能の目的は、アプリケーション開発をスピードアップさせることです。MyEclipse for Springはすべてのレイヤのアプリケーションを生成できます。例えば、Webやサービス、ドメイン、データアクセス層などです。MyEclipse for Springの典型的な利用方法は、2つあります。ひとつは、完全に実行可能なアプリケーションやコンセプト・デモ、機能のプロトタイプなどを生成するという利用方法です。もうひとつは、開発プロジェクトのなかで開発者が利用するアプリケーションの特定のレイヤを生成するというものです。
開発者の日々の開発作業を支援するコードアシスタントは、MyEclipse for Springのもう一つの主要機能です。コードアシスタント機能の目的は、アノテーションをもとにした開発を支援することです。大部分のJava開発者はJavaアノテーションの技術的な利用方法は理解していますが、どのアノテーションが特定の技術に対して利用可能で、特定のアノテーションをいつ使うべきなのかは、彼らにとっても明確ではありません。例えば、Springフレームワークは、アノテーションを利用した優れたプログラミングサポートを提供しています。しかし、サポートされているアノテーションは数多く、すべてのSpringステレオタイプで利用可能なアノテーションもあれば、特定のステレオタイプでのみ利用可能なアノテーションもあります。コードアシスタントは、開発者にどのアノテーションが利用可能かや、特定のアノテーションはどういった場面で利用すべきなのかを知らせることによって、アノテーションを使った開発を支援します。
より詳細なMyEclipse for Springの機能のレビューは、http://www.myeclipseide.com/me4sで確認できます。
InfoQ: 新バージョンでのもっとも重要な新機能はなんですか。
Niel氏: リリース8.6では、既存のSpring MVCの雛形作成機能を強化するとともに、Adobe FlexやGoogle Web Toolkit (GWT)、Spring Web Flow、iPhone Webなどの雛形作成機能を追加しました。また、JAX-WS、コントローラ、サービス、コンポーネント、レポジトリを含むSpringステレオタイプのコードアシスト機能も追加しています。このリリースでは、より包括的なドキュメントやチュートリアルなど、ユーザを支援し、MyEclipse for Springをつかって成功してもらうための情報を提供する教育用教材を作成することにも力をいれました。
InfoQ: あなた方の顧客が日々のプロジェクトのなかで、この製品をどのように利用しているかを教えて頂けませんか。あなた方のソリューションを検討しているチームに推奨する典型的な開発プロセスはどういったものですか。
Niel氏: 一般的に、私たちの顧客は、MyEclipse for Springをアプリケーション開発のスピードの向上、機能的なプロトタイプの作成、新しいテクノロジの学習、アプリケーション・モダナイゼーションなどに利用しています。これらの利用方法を順にみていきましょう。。
アプリケーション開発のスピードをあげる
Eclipseを利用している開発者は多数のツールを利用可能であり、MyEclipse for Springは、Eclipseのツール群にコードを自動生成するための統合された機能を提供します。コード生成は、キーを数回打つだけで完了しますし、開発者はどのコンポーネントを生成するのかを明確に指定することが可能です。
機能的なプロトタイプ
MyEclipse for Springは、プロトタイピングと開発を明確に区別しませんが、多くのお客様は、ドメインモデルから完全に動作するアプリケーションを生成して、プロトタイピングで利用しています。ドメインモデルを改善し、そのドメインモデルからアプリケーションを数分で再生成できます。アプリケーションを実際に動かしてみることで、ビジネスアナリストとともに要件を詳細につめることが容易になります。さらに、このプロトタイプをもとにアプリケーション開発を始めることができるのです。
新しいテクノロジを学習する
特定のテクノロジを深く学んだ開発者は、新しいテクノロジを学ぶ際にそのスキルを利用することができます。開発者は、通常、あたらしく学び始める際にはサンプルアプリケーションや、リファレンスアプリケーションから始めます。しかしMyEclipse for Springを使えば、自身のドメインモデルを利用してアプリケーションのサンプルを作成することが可能なのです。例えば、Springを学習したいと思っているPHPの開発者がいたとしましょう。既存のPHPアプリケーションのなかのデータベーステーブルを利用することで、即座にSpring MVC(Spring Web Flowなども同様)のアプリケーションを生成することができるのです。アプリケーションは、自身のドメインモデルに基づいていますので、そのアプリケーションはインターネットからダウンロードしたものより身近なものです。さらに、このサンプルアプリケーションは、新しいテクノロジのベストプラクティスを含んでいるので、新しいテクノロジの正しい使い方を学ぶことができます。
アプリケーションモダナイゼーション
MyEclipse for Springは、老朽化したアプリケーションの再構築を行う際にも非常に有効です。MyEclipse for Springが利用できるシナリオは数多くあります。例えば、他のテクノロジやフレームワークからSpringに移行したいという組織もあるでしょう。また、既存のアプリケーションにリッチなフロントエンド(GWT、Adobe Flex)を加えたいというケースもあるでしょう。どちらの場合でも、MyEclipse for Springを使えば、既存のアプリケーションの部品をもとに新しいアプリケーションコンポーネントのかなりの部分を生成することができますので、アプリケーションの再構築をいち早く始めることができます。
InfoQ: 雛形生成機能(scaffolding)は、この製品の非常に重要な機能ですが、Spring Rooのような他のソリューションと比較した場合どのような位置づけになるのでしょうか。
Niel氏: まず初めにお断りしておくと、私は、Spring Rooチームの仕事のファンです。Springに自動生成ツールを加えるという私たちの目的は、開発者に追加の選択肢を与え、SpringSourceから提供される無償の選択肢を補完することなのです。
RooとMyEclipse for Springの差異を取り上げたWebページにここからアクセスできます。大きくは次の3つの違いがあります。ひとつめは、2つのツールで採用される開発環境です。MyEclipse for Springは、Eclipseベースのウイザードとエディタを利用しますが、Spring Rooはスクリプト言語とコマンドラインを利用します。Eclipseを利用するユーザは、ウイザードとエディタに慣れしたしんでいますので、MyEclipse for Springを使い始めるのに特別な学習は必要ないのです。2つめは、生成されたアプリケーションのもととなるアプリケーション・パターンの相違です。MyEclipse for Springは、伝統的なアーキテクチャパターン(コントローラ、サービス、ドメイン、DAO)に沿ったアプリケーションを生成します。それに対して、Spring Rooは、ドメイン主導設計の考え方(AspectとWeavingを使い、サービスやDAOを用いない)に沿ったアプリケーションを生成します。
3つめは、生成されるアプリケーションの種別です。MyEclipse for SpringはSpring MVCやSpring Web Flow、GWT、Adobe Flex、iPhone Webアプリケーションなどを生成し、Spring 2.5と3.0の双方をサポートします。必要とされるすべてのサードパーティのライブラリは既に正式リリース済みのものなので、MyEclipse for Springは、現時点でも商用アプリケーションを生成するのに適しています。 Spring Rooは、Spring3.0のSpring MVCを生成するだけです。Spring Rooの早期アクセスバージョンではその他のアプリケーション種別もサポートしていますが、マイルストーンビルドや早期アクセスバージョンのライブラリやフレームワークに依存したものです。
繰り返しになりますが、その他のMyEclipse for SpringとRooの違いについては、http://www.myeclipseide.com/me4s/faqs/faqs_tool_comparison.phpをご覧ください。
InfoQ: 製品のロードマップを教えてください。近い将来、大きな機能追加の予定はありますか。
Niel氏: 雛形生成の部分では、より多くのアプリケーション種別の雛形を生成できるようにしていきます。また、コード生成に関しては、よりきめ細やかな制御を行えるようにしたいです。例えば、カスタムのテンプレートを加えることで、コード生成エンジンをより簡単にカスタマイズできるような機能です。いくつかのコードアシスタント機能も計画しています。今しばらくお待ちください。
MyEclipse for SpringはMyEclipse Professionalの全ての機能を含んでおり、30日間無償トライアルが利用可能だ。