私たちのアプリケーションは、JavascriptMVCフレームワークを使用した大規模なJavascriptアプリケーションです。SVN:externalを介してすべてのサイトでMVCアプリフォルダーを使用しており、各サイトにも独自のファイルがあります。設定ファイルはサイトに固有です。
システムには、サイトごとに異なる機能を持つ機能が必要です。コア機能は同じままである必要があります。現在および新規の開発者向けの保守可能なソリューションを維持しながら、コアコードを拡張する必要があります。
現在、私たちが考えているオプションは次のとおりです。
a:コア内に機能条件を埋め込み、設定ファイルを介して機能のオン/オフを切り替えます
b:既存のコントローラーをオーバーライド/継承します
c:コア内に無制限のフックを備えたモジュラーシステム(プラグイン)を実装し、settings.jsonを介してロード/有効化されるプラグインを構成します
オプションaは、長期間維持するのが難しいという問題があり、かなりハッキーです。
オプションbはすでに実装されていますが、維持するのは困難です(新しい機能があるかのように、上書きされた場合は各サイトのファイルを編集する必要があります
オプションcは、(共有(プラグイン)コントローラーを使用し、サイト固有の設定ファイルを編集することにより、修正を分離することを最近考えたソリューションです。
知っておくとよいのは、私たちがすでに考えているオプションのいずれかを経験したことがあるかどうか、そして誰かがより適切な別のオプションを知っているかどうかです。