2009-08-05 16 views
3

私の会社では、事前に作成されたWebアプリケーションを開発しています。多くの場合、アプリケーションはそのまま動作しますが、しばしば複雑なカスタマイズ要求を受け取ります。私たちは構造化された方法でこれを実行しようとする際に問題を抱えています。一般的な機能は、カスタマイズの影響を受けてはいけません。現時点では、Spring Web Flowを検討しており、必要なものの一部を処理できるように見えます。カスタマイズ可能なWebアプリケーション

たとえば、私たちにはオンラインショッピングがあり、ショッピングバスケットオーダーをチェックアウトした瞬間に独自のロギングシステムに書き込まなければならないという依頼があります。 SWFでは、Generic Checkout FlowをClientX Checkout Flowで継承し、カスタムログ書き込みを実行するために必要な状態で拡張することができます。このシナリオはうまく処理されているようです。これは、一般的なチェックアウトフローをそのまま維持し、カスタム機能で拡張することができることを意味します。私たちのチームは、Generic Checkout Flowに機能を追加することができ、拡張機能を変更することなくクライアントに配布することができます。 しかし、クライアントがページをカスタマイズするよう要求することがあります。たとえば、オンラインショッピングアプリでは、クライアントが複数の通貨機能をリクエストします。この場合、ビューとフロー(コントローラ)を変更する必要があります。 Generic Viewを拡張し、それを変更しない技術がありますか?今のところ、テンプレートベースのビュー(JSP、Struts、Velocityなど)の大部分を持つ2つのソリューションは、クライアントごとに特定のバージョンのビューを持つように思われます(

  • )これは明らかに
  • は、パラメータに応じて、設定可能なアプリケーションを作成するために実装爆発につながる(あればmultipleCurrency)コードの爆発につながる - 各ページ

にチェックする必要があり、設定条件の数であるものこの場合の最善の解決策は?おそらく私が思い出すことのできないカスタマイズのケースがいくつかあります。多分私は特定のベースビューを拡張することができ、それは意味をなさないコンポーネントベースのビュー技術はありますか? 設定可能なWebアプリケーションの問題に対する典型的な解決策は何ですか?

答えて

1

各カスタマイズポイントは、一定のレベルの条件を示します。

可能であれば、人々はいくつかの側面を制御するためにスタイルシートを使用する傾向があります。たとえば、通貨セレクタの表示は、おそらくそのように行うことができます。

通貨の例のもう1つの考え方は、1が多くの場合の限定的なケースです。したがって、モデルは通貨のリストを提供します。多くの場合セレクタが表示され、1つのみの固定フィールドが表示されます。かなり明確に定義された動作 - 他のシナリオで再利用可能なテストが容易です。

関連する問題