0

假設您要創建一個複雜的後端系統。系統中的某個位置有一個IQueue接口。您計劃有隊列幾種實現方式:Visual Studio解決方案/項目組織

  • 天真「內存」
  • 數據庫(其中隊列在數據庫管理)
  • 亞馬遜SQS(使用Amazon SQS雲服務)
  • MS /谷歌/其他隊列服務

顯然,每個實現都需要它自己的階級和實現。每個實現可能需要不同的引用(數據庫將要求DLL與相關數據庫進行通信,Amazon SQS將要求Amazon AWS DLLs等)

您將如何組織此類場景的解決方案?

假設接口和幼稚實施是其中使用的隊列中的項目的地方,我看到以下可能的選擇:

  • 獨立的Visual Studio(並因此組裝)每個實現:
    • 專業:清潔工程,項目級別的「單一職責」,更容易更新具體實施
    • Con:很多項目,很多組件需要管理/部署,速度較慢Visual Studio
  • 所有「非天真」實施的單個項目:
    • Pro/Con:與第一個選項完全相反。
+0

Definetly更多的程序集。 – TcKs

+2

你已經制定了優點/缺點的方式沒有任何意義。在一個解決方案中創建多個項目問題解決了。一切都乾乾淨淨,易於更新,不違反單一責任等。如果Visual Studio速度太慢,請在解決方案資源管理器中右鍵單擊您未處理的項目,然後選擇「卸載項目」。這正是解決方案所設計的目的。 –

+0

@Cody:我很清楚項目是爲此設計的。然而,只是「越來越多」項目而不去思考,是一種不好的做法。而且你無法擺脫這樣一個事實,即越來越多的項目導致VS速度變慢(並且卸載項目並不是真正的解決方案),並且縮短了構建時間。並補充說明,您需要管理/部署/ etc等您添加的每個程序集... – SaguiItay

回答

2

在我看來,你會爲每個執行單獨的Visual Studio項目中列出的第一條路線是最好的一個,理由已上市。它還具有額外的好處,可以隨時添加實現,而無需替換二進制文件,這非常好。

相關問題