2

私たちのアプリケーションは、JavascriptMVCフレームワークを使用した大規模なJavascriptアプリケーションです。SVN:externalを介してすべてのサイトでMVCアプリフォルダーを使用しており、各サイトにも独自のファイルがあります。設定ファイルはサイトに固有です。

システムには、サイトごとに異なる機能を持つ機能が必要です。コア機能は同じままである必要があります。現在および新規の開発者向けの保守可能なソリューションを維持しながら、コアコードを拡張する必要があります。

現在、私たちが考えているオプションは次のとおりです。

a:コア内に機能条件を埋め込み、設定ファイルを介して機能のオン/オフを切り替えます

b:既存のコントローラーをオーバーライド/継承します

c:コア内に無制限のフックを備えたモジュラーシステム(プラグイン)を実装し、settings.jsonを介してロード/有効化されるプラグインを構成します

オプションaは、長期間維持するのが難しいという問題があり、かなりハッキーです。

オプションbはすでに実装されていますが、維持するのは困難です(新しい機能があるかのように、上書きされた場合は各サイトのファイルを編集する必要があります

オプションcは、(共有(プラグイン)コントローラーを使用し、サイト固有の設定ファイルを編集することにより、修正を分離することを最近考えたソリューションです。

知っておくとよいのは、私たちがすでに考えているオプションのいずれかを経験したことがあるかどうか、そして誰かがより適切な別のオプションを知っているかどうかです。

4

1 に答える 1

0

オプションCに傾いています。

大規模なアプリケーションは、モジュラーパターンに従うことで大きなメリットが得られます。将来の保守性を高めるために、コードを緩く分離しておくことができます。また、多くの開発者が一度に個々の部分で作業できるようになります。そして、サイト固有の設定ファイルを介してコアモジュールとアドオンをロードします。

大規模アプリケーションのトピックに関するAddyOsmaniの記事を確認することをお勧めします。

Mediator、Facade、Pub / Subパターンは、モジュラーコンポーネントで非常にうまく機能し、RequireJSのようなモジュールローダーと組み合わせると、大規模なアプリケーションの優れた基盤が得られます。私はこれを職場で使用しましたが、すべてを整理して保守しやすいようにするための優れた方法であることがわかりました。

于 2013-03-27T00:41:35.943 に答える