0
假設您要創建一個複雜的後端系統。系統中的某個位置有一個IQueue接口。您計劃有隊列幾種實現方式:Visual Studio解決方案/項目組織
- 天真「內存」
- 數據庫(其中隊列在數據庫管理)
- 亞馬遜SQS(使用Amazon SQS雲服務)
- MS /谷歌/其他隊列服務
顯然,每個實現都需要它自己的階級和實現。每個實現可能需要不同的引用(數據庫將要求DLL與相關數據庫進行通信,Amazon SQS將要求Amazon AWS DLLs等)
您將如何組織此類場景的解決方案?
假設接口和幼稚實施是其中使用的隊列中的項目的地方,我看到以下可能的選擇:
- 獨立的Visual Studio(並因此組裝)每個實現:
- 專業:清潔工程,項目級別的「單一職責」,更容易更新具體實施
- Con:很多項目,很多組件需要管理/部署,速度較慢Visual Studio
- 所有「非天真」實施的單個項目:
- Pro/Con:與第一個選項完全相反。
Definetly更多的程序集。 – TcKs
你已經制定了優點/缺點的方式沒有任何意義。在一個解決方案中創建多個項目問題解決了。一切都乾乾淨淨,易於更新,不違反單一責任等。如果Visual Studio速度太慢,請在解決方案資源管理器中右鍵單擊您未處理的項目,然後選擇「卸載項目」。這正是解決方案所設計的目的。 –
@Cody:我很清楚項目是爲此設計的。然而,只是「越來越多」項目而不去思考,是一種不好的做法。而且你無法擺脫這樣一個事實,即越來越多的項目導致VS速度變慢(並且卸載項目並不是真正的解決方案),並且縮短了構建時間。並補充說明,您需要管理/部署/ etc等您添加的每個程序集... – SaguiItay