当社では、複数の顧客に販売したデータ統合ツールを構築しました。ほとんどのお客様には、明確な要件があります。継承に基づく自作のメカニズムを使用して、これらの顧客固有の拡張機能を実装しました (したがって、すべてのインストールで、どのクラスをロードし、どのクラスをロードしないかがわかります)。ただし、この顧客固有のコードはすべて、標準コードと同じコードベースにあります。
現在、これはいくつかの理由で不可能になっています (コードベースが醜く大きくなっている、要件が衝突しているなど)。
このため、コードベースを分離することにしました。1 つは標準製品用で、いくつかの顧客固有のコードベースです。
現在、このアプローチをサポートするバージョン管理システムを見つけようとしています。ここに私のウィッシュリストがあります:
- 異なるリリースのいくつかの「標準」コードベースのサポート
- 1.0 リリース
- 1.1 リリース
- 2.0 ベータ版/開発中
- 複数の「顧客」コードベースのサポート
- 標準コードベースを複製して顧客コードベースを作成する機能
- 顧客コードベースの標準コードを変更する機能
- 新しい標準リリースで顧客のコードベースを更新する機能 (および、顧客のコードベースで変更された標準コードに起因する競合を何らかの方法でマークする)
私たちのチームはまだ非常に小さいため (~4 人のプログラマー)、開発者自身が簡単に処理できるはずです。
ところで、私たちのソフトウェアはSpringとSTSを使用して構築されています (つまり、 Eclipse プラグインも素晴らしいでしょう)。
私がこれまで調査してきたすべての VCS は、複数ではなく1 つのソフトウェアを構築することを目標としているようです。いくつかの提案やベストプラクティスのアプローチを期待しています。