私の会社では、事前に作成されたWebアプリケーションを開発しています。多くの場合、アプリケーションはそのまま動作しますが、しばしば複雑なカスタマイズ要求を受け取ります。私たちは構造化された方法でこれを実行しようとする際に問題を抱えています。一般的な機能は、カスタマイズの影響を受けてはいけません。現時点では、Spring Web Flowを検討しており、必要なものの一部を処理できるように見えます。カスタマイズ可能なWebアプリケーション
たとえば、私たちにはオンラインショッピングがあり、ショッピングバスケットオーダーをチェックアウトした瞬間に独自のロギングシステムに書き込まなければならないという依頼があります。 SWFでは、Generic Checkout FlowをClientX Checkout Flowで継承し、カスタムログ書き込みを実行するために必要な状態で拡張することができます。このシナリオはうまく処理されているようです。これは、一般的なチェックアウトフローをそのまま維持し、カスタム機能で拡張することができることを意味します。私たちのチームは、Generic Checkout Flowに機能を追加することができ、拡張機能を変更することなくクライアントに配布することができます。 しかし、クライアントがページをカスタマイズするよう要求することがあります。たとえば、オンラインショッピングアプリでは、クライアントが複数の通貨機能をリクエストします。この場合、ビューとフロー(コントローラ)を変更する必要があります。 Generic Viewを拡張し、それを変更しない技術がありますか?今のところ、テンプレートベースのビュー(JSP、Struts、Velocityなど)の大部分を持つ2つのソリューションは、クライアントごとに特定のバージョンのビューを持つように思われます(
- )これは明らかに
- は、パラメータに応じて、設定可能なアプリケーションを作成するために実装爆発につながる(あればmultipleCurrency)コードの爆発につながる - 各ページ
にチェックする必要があり、設定条件の数であるものこの場合の最善の解決策は?おそらく私が思い出すことのできないカスタマイズのケースがいくつかあります。多分私は特定のベースビューを拡張することができ、それは意味をなさないコンポーネントベースのビュー技術はありますか? 設定可能なWebアプリケーションの問題に対する典型的な解決策は何ですか?