1

私たちのアプリケーションには、複数のアプリケーションで使用されているかなりのコードがあります。コードは SVN 外部を使用して共有されます (共通コードを使用する複数のアプリ - これにアプローチする方法は?の質問を参照してください)。展開を簡素化するために、スタンドアロンの実行可能ファイル (DLL なし) を作成します。

問題は、単純な機能を備えた共通コードの断片だけでなく、他の共通コードに依存する機能を備えたコードの断片も取得していることです。例えば:

  • モジュール A には共通機能 A が含まれています
  • モジュール B には共通機能 B が含まれています
  • モジュール X には共通の機能 X が含まれていますが、A と B が必要です。

多くの場合、別のモジュールを必要とするモジュールだけの問題ではなく、「モジュール A とモジュール B がある場合、それらの機能をリンクするにはモジュール X が必要です」。

共通コードのすべてのモジュールに SVN エクスターナルを使用するため、エクスターナルの大きなセットができあがります。モジュールの多くの組み合わせには、他のモジュールがあります。

  • モジュール A と B がある場合は、モジュール X も必要です
  • モジュール B と C がある場合は、モジュール Y も必要です。
  • モジュール A と C がある場合は、モジュール Z も必要です
  • ...

SVN externals はそれを非常に明確にしていますが、それでも使用するのは非常に面倒です:

  • 2 つ (またはそれ以上) の他のモジュールに依存する機能を追加する場合、定期的に新しいモジュールを作成する必要があります。
  • 新しいモジュールが追加された場合、すべてのアプリケーションの外部を定期的に変更する必要があります
  • SVN の更新に時間がかかる

これをより簡単に (またはより速く) するために使用できる良いパターンやテクニックはありますか? 例えば:

  • #define と #ifdef を使用して、モジュール A が実際に存在する場合にモジュール A に依存するコードのみを含めます (15 年前にこれを行っていましたが、私はこのアプローチのファンではありません)。
  • 再帰的外部 (これは存在しますか?)
  • DLLの何か?(これはおそらく問題を悪化させるだけですが)
  • ...

他の提案はありますか?

4

0 に答える 0