0
複雑なバックエンドシステムを作成しているとします。システムのどこかに、IQueueインターフェースがあります。あなたはキューのためのいくつかの実装を持つことを計画している:Visual Studioソリューション/プロジェクト組織
- ナイーブ「インメモリ」クラウドで
- データベース(キューがデータベースで管理されている)
- アマゾンSQS(使用してアマゾンSQSサービス)
- MS /グーグル/その他キューサービス明らかに
、各実装は、それが自分のクラスと実装の必要があります。各実装にはおそらく異なる参照が必要です(データベースには関連するデータベースとの通信が必要ですが、Amazon SQSにはAmazon AWS DLLなどが必要です)
このようなシナリオでは、どのようにソリューションを整理しますか?
- 別のVisual Studio(したがって、アセンブリ)各実装用:
-
インタフェースと素朴な実装を想定し
- プロ:クリーンなプロジェクト、プロジェクトレベルでの「一元的責任」、特定の実装の更新が容易
- Con:多くのプロジェクト、管理/展開するアセンブリが多数あり、Visual Studioの速度が遅い
は、キューが使用されているプロジェクトで、場所で、私は以下の可能なオプションを参照してください
- すべての「非純粋」実装の単一プロジェクト:
- Pro/Con:最初のオプションとは正反対です。あなたはそれぞれの実装のための独立したのVisual Studioプロジェクトにリストされた最初のルートを行く私の意見で
さらに多くのアセンブリが定義されています。 – TcKs
あなたが長所/短所をレイアウトしたやり方は意味をなさない。 1つのソリューションで複数のプロジェクトを作成する。問題が解決しました。すべてがきれいできれいで、更新が容易で、単一の責任などに違反しないこと。Visual Studioが遅すぎる場合は、ソリューションエクスプローラで作業していないプロジェクトを右クリックし、[プロジェクトのアンロード]を選択します。これはまさにどのソリューションが*設計されたのかです。 –
@Cody:私は、プロジェクトがこれを対象としていることをよく知っています。しかし、それを考えずに、ますます多くのプロジェクトを「ポップアップ」するのは悪い習慣です。そして、より多くのプロジェクトでVSが遅くなり(実際にはプロジェクトをアンロードすることは解決策ではない)、構築時間は遅くなるという事実から脱却することはできません。あなたが追加する各アセンブリを管理/配備する必要があるという事実をそれに加えてください。 – SaguiItay