0

私はさまざまなクライアント(Bob、Rick、Sue、Eve)向けに同様の計算パッケージを開発しています。計算パッケージは、「責任の連鎖」パターンで編成されたいくつかの計算モジュール(A、B、C、D、...)で構成されています。組み立てはAbstractfactoryで行われます。さまざまなクライアントの計算モジュール間で多くのコードが共有されるため、それらは階層に編成されます。

                 ICalcA
                   |
               AbstrCalcA
               |       |
   AbstrCalcAMale      AbstrCalcAFemale
    |         |           |         |
CalcABob   CalcARick   CalcASue   CalcAEve

(B、C、D、...の同じ階層)。

リリース管理では、継承レベルごとにソースコードを整理するように指示されています。

Project: CalcCommon
  [CalcA]
    ICalcA.cs
    AbstrCalcA.cs
  [CalcB]
    ICalcB.cs
    AbstrCalcB.cs
  [CalcC]
    ...

Project: CalcMale
  [CalcA]
    AbstrCalcAMale.cs
  [CalcB]
    AbstrCalcBMale.cs
  [CalcC]
    ....

Project: CalcBob
  [CalcA]
    CalcABob.cs
  [CalcB]
    CalcBBob.cs
  [CalcC]
    ....

Project: CalcFemale
   ....

ボブの場合、CommonCalc.dll、CalcMale.dll、およびCalcBob.dllをリリースします。

これですべて問題ありませんが、多くのモジュールやヘルパークラスなどがあるため、同じモジュール階層内で作業するのは非常に面倒です。密接に関連するクラス(ICalcAやCalcABobなど)は、ソリューションエクスプローラーでは遠く離れています。私のチームの誰も、クラス名を検索せずに何かを見つけることはできないようです-彼がそれを覚えていれば。機能は、間違った階層レベルまたは複数の階層レベルで実装される傾向があります。

どうすれば状況を改善できますか?

モジュールおよび階層レベル(プロジェクト:CalcCommonA、CalcMaleA、CalcBobA、CalcRickA、CalcCommonB、CalcMaleBなど)ごとに1つのプロジェクトを作成し、ソリューションフォルダーを介してそれらをグループ化することを考えていました。

4

1 に答える 1

0

ソリューションエクスプローラーの上にある新しい検索バーがこれに役立つことがわかりました。

手順1:機能Aに関連するすべてのクラスのクラス名に「FeatureA」が含まれていることを確認します。

ステップ2:FeatureA階層で作業している場合は、検索/フィルターバーに「FeatureA」と入力します。

これは、必要に応じて、この特定の階層のクラスにのみ表示されます。

于 2013-03-29T11:39:46.260 に答える