1

私は liferay 6.x ServiceBuilder フレームワークを掘り下げ始め、そのコード生成アプローチがとても気に入りました。シンプルな service.xml ファイルで、コードを 1 行も書かずに、すぐに使用できる強力なサービスを生成できます。

また、UML モデルから同様のサービスを生成できる AndroMDA も調べてみました。これは、service.xml (liferay ServiceBuilder の場合) の新しい xml 構成を学習する必要なく、ビジネス モデルを直接リンクできるため、さらに興味深いものに思えます。

現在、どのツールを使用するかを検討中です。これらのツールを使用した経験に基づいて、このライブラリを使用することの長所/短所を教えてください。

これらの側面と、あなた自身の考えを知りたいです

  1. 私の開発を長期的により生産的に保つためには、どちらが良いですか.
  2. ServiceBuilder を使用すると、ポータル環境外でサービスを使用できるようになります (非ポータル アプリ サーバーから同じサービスを実行するとします。
  3. UML 駆動型のアプローチは常に優れているか、それとも実用的な短所や課題があります。
  4. liferay 6.x の開発において、これら 2 つより優れたコード生成ライブラリを他に知っていますか? これらのSOスレッドもチェックしました

4

2 に答える 2

4

私がServicebuilderで経験したいくつかの問題に続いて(私はliferay 5.2.3を使用しています):

  1. ORMフレームワークを使用できません。オブジェクト間の関係を生成する方法はありません。このため、私はオブジェクトマッパーだけを効果的に使用しています。それは1対多のような関係を生み出していません
  2. ドメインやサービスでの継承など、基本的なオブジェクト指向のものは使用できません
  3. ユニットテストケースを書くのはかなり難しいです
  4. 私はまだ複雑なドメイン構造の必要性が何であるかを理解していませんでした
  5. 生成されているコードはIDEを使用してすばやく記述できると思います

しかし、Egarが言ったように、それは確かにそれ自身の利点を持っています、それはLiferayのために特別に作られています。そのため、liferayに必要なすべてのものをすばやく生成できます。Liferayの最新バージョンでは、上記の問題のいくつかが修正されていると聞きました。

全体的にそれはあなたの要件に依存します。ORMレイヤーをさらに制御する必要があり、非常に多くの単体テストを必要とする複雑なビジネスロジックがある場合は、WebサービスまたはRESTサービスとしてポートレットに公開できる通常のSpringサービスを利用してください。

それ以外の場合、サービスビルダーは単純なポートレットにも適しています。他のアプローチは両方を使用することです。個別のプロジェクトとしてのすべての複雑なサービスと、サービスビルダーを使用した単純なサービス。

于 2011-07-14T12:48:59.227 に答える
2

あなたが知っておくべき重要な事実があります。ServiceBuilderは、ポータル自体の構築を支援するために使用されており、ポータルに緊密に統合されています。Liferayの外では使用できません...おそらく一般的な使用のために使用および変更できる可能性がありますが、それが理にかなっているとは思えません。

最も重要なのは、ポータルと開発中の各プラグインがサーブレットコンテナ内に独自のWebアプリケーションコンテキストを持っているためです。それぞれに独自のクラスローダーがあります。プラグインは、ポータルクラスローダーやポータルサービスなどを使用しています。

簡単に言えば、ServiceBuilderで生成されたコードとSpringコンテキストは、ポータルクラスローダーなどを備えたLiferayポータルであるwebapp /ROOT/がある場合にのみ存在できます。

AndroMDAは、一般的な使用のためのMDAフレームワークです。よくわからないので、比較はしません。ServiceBuilderの力は、それが一般的な使用のためのフレームワークではないことです-それはliferayプラグイン開発のためにより強力です。

于 2011-02-25T19:13:54.557 に答える