BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

Skyway Builder Community EditionがSpringアプリケーションのコード生成をサポート

| 作者: Srini Penchikala フォローする 41 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2009年3月7日. 推定読書時間: 7 分 |

Skyway Builder Community Edition(CE)(リンク)の最新バージョンがSpringベース(リンク)のウェブ・アプリケーション用オープンソース・コード生成フレームワークを提供する。コミュニティ・エディションは、標準的なSpringアプリケーションのアプリケーション層(データ、サービス、ウェブ層)で必要となるコードを生成するのに使用できる。このたびSkyway Software(リンク)はSkyway Builder 6.1バージョンの一般提供(GA、General availability)を発表した。

新しいSpring MVCのスカフォールディング機能により、開発者はドメイン・モデルからSpringベースのJava CRUDアプリケーションを生成できる。このツールはJUnitテスト・クラスも自動的に作成する。以下のようなウェブ・アプリケーション分野において、Skyway BuilderはJava開発者をサポートする。

データ層:

  • データ・モデリング
  • Namedクエリ
  • Hibernate(リンク)、JPQLそしてSQLといったJava Persistence API (JPA(リンク))
     

サービス層:

  • サービス・モデリング
  • 操作クエリ
  • アクション・モデリング
  • コンポジット・サービス

ウェブ層:

  • ウェブ・コントローラ・モデリング
  • 会話モデリング
  • アクション・モデリング
  • AJAX開発

この新リリースにはビルド・オートメーションのためのApache Maven(リンク)およびスタンダードEclipseの動的Web Javaプロジェクトへの直接生成のサポートが含まれている。またSpring IDEやSpring Tool Suite (STS)のようなSpringSource(リンク)ツールとの統合もなされている。

InfoQはSkyway Softwareのプロダクト・マネジャーであるNiel Eyde氏と、この新コミュニティ・エディションのリリースおよび当該製品の今後のロードマップについてインタビューを行った。

Skyway Builderコミュニティ・エディションのリリースの背後にある主な動機はどういったものでしょうか。

私達のビジョンは、ソフトウェアのデリバリ・ライフサイクルにおける複雑さを解消することにあります。無料かつオープン・ソースのSkyway Builder Community Edition(CE)提供による私達のミッションは、SpringベースのJavaウェブ・アプリケーションをスケジュールと予算通りに実現できるよう、コミュニティのメンバ、顧客、そしてパートナーがソフトウェア開発のコストと複雑性を削減できるようにすることです。

コード生成ツールはドメイン駆動設計(DDD)の原則およびDomain-Driven Design(リンク)の本で触れられているベスト・プラクティスにならっているのですか。

Skyway Builderは(Java、Spring MVCなどの)基礎をなす技術を抽象化しており、これはモデル駆動設計のDDD概念と一致しています。私達の生成コードは開発者によるモデルを具象化したものに過ぎません。仮に開発者がDDDを実践している人ならば、DDDの原則とベスト・プラクティスは開発者がSkyway Builderを使用してシステムを設計する方法に影響を与えるでしょう。これが生成コードのベスト・プラクティスとなるとき、Skyway Builderは、SpringSource(Skyway BuilderはSpringSourceに認証されています)および産業界(コミュニティ、顧客、パートナー)が定義するようにSpringのベスト・プラクティスに準じたアプリケーションを生み出すでしょう。

このツールは、テスト駆動開発(TDD、Test-driven Design and Development)の原則に基づいてコードを記述するのに慣れているJava開発者にとって、どう役立つのでしょうか。

Skyway Builderには、明確にTDDを指向する機能性はありません。現時点では、私達の目的は単にTDDの妨げにならないことであり、開発者はSkyway Builderを使用する際にTDDを十分に活用できるはずです。わずかな違いといえば、アプリケーション・コードの一部(あるいは全て)がハンド・コーディングするのに代わって生成されるということです。TDDを可能とするため、Skyway Builderのコード生成は開発者にとって完全にトランスペアレントでなければいけません。生成コードは質が高く、開発者が使用するのと同じライブラリを利用し、いかなるカスタム(つまり独自の)ライブラリも利用しないことが必須です。また、コードが(開発者のスタイルや好みによるバラつきがより少なく)一貫した方法で作成される点がテストに対してメリットを持つということに留意するのも重要です。つまり、TDDに関連したいくつかの機能をSkyway Builderに追加する機会が必ず存在するということです。

ツールで生成された後にコードを修正することはできますか。

できます。開発者はSkyway Builderを様々な方法で使用できます。アプリケーションの全体構造を定義・生成するのにSkyway Builderを使い、生成コードの実装とメンテナンスを自分で行う人もいるでしょう。またアプリケーションのエンドツーエンド開発にSkyway Builderを使う人もいるでしょう。どちらの場合も、開発者は既存のJavaコードまたはライブラリ、Groovyコード、そしてSpring BeansをSkyway Builder環境から活用することができます。生成コードを修正するためには、@で生成されているアノテーションを削除し、その後手打ちで整えます。Skyway Builderの次のリリース(6.2)では開発者はハンド・コーディングしたコードのブロックを生成メソッドに追加できるでしょう。

Skyway Builderツールと、Eclipse Modeling Framework (EMF(リンク))やopenArchitectureWare (oAW(リンク))、AndroMDA(リンク)といった他のコード生成ツールとの比較はどうでしょうか。

これらは全て汎用のコード生成フレームワークです。こういったツールはコード生成のソリューションを作成するのに役立つ一方、Springベースのウェブ・アプリケーション生成については特定のソリューションを提供しません。開発者がSpringを使用してSpring MVCアプリケーションやRIAを生成する必要があれば、そのうちいずれかのフレームワークを使って独自のコード生成ソリューションを実装する必要があるでしょう。Skyway BuilderはEMFをインスタンス化したものです。私達はEMFの性能を活用し、Springベースのウェブ・アプリケーション開発を後押しするソリューションを提供しています。

Skyway BuilderツールではMDA標準に準拠したドメイン・モデル定義は作成されていますか。モデルは他のMDAツールに移植できますか。

Skyway BuilderのメタデータはEMFで定義されており、他のEMFを意識したソリューションに移植可能です。

Skyway Builderプロジェクトの今後のロードマップはどのようなものでしょうか。

私達のロードマップは、Eclipse 3.4 (Ganymede)、追加のSpring MVCデータ・バインド・オプション、Spring Web Flow、改良Groovyサポート、継続的なコード生成リファクタリング、そして追加のモデリング・ステップを盛り込んでいます。

Skyway Builder CEは現在Eclipse 3.4リリースをサポートしていない。しかし3月末までに利用が可能となる予定の次回リリース(バージョン6.2)はEclipseの最新バージョンをサポートする。またTomcatコンテナ(リンク) (バージョン5.5および6.0)への展開およびMySQL(リンク)やPostgres(リンク)のようなデータベースもサポートする。

原文はこちらです:http://www.infoq.com/news/2009/02/skyway-community-edition

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT