探索單一存放庫(monorepo)對照多個儲存庫

已完成

存放庫是儲存工作歷程記錄的位置,通常是在 git 子目錄中。

您應該如何組織程式代碼存放庫? 開發小組的目標是在其軟體和存放庫中區隔疑慮。 隨著時間的推移,程式碼庫中充斥著不相關的程式碼和產物這種情況並不罕見。

在組織存放庫方面,有兩個主要的理念:使用單一存放庫(Monorepo) 或多個存放庫。

  • Monorepos 是原始檔控制模式,其中所有原始程式碼都會保留在一個存放庫中。 要讓所有員工同時存取所有內容是很簡單的。 複製它,完成了。
  • 將您的項目組織成不同的存放庫稱為多個存放庫。

單一存放庫與多個存放庫哲學之間的基本差異在於,可讓小組最有效率地共同作業。 在極端的案例中,多個存放庫檢視建議每個子小組都可以在其存放庫中運作。 它可讓他們在各自的領域中工作,使用優化其生產力的程式庫、工具和開發工作流程。

使用任何非由指定儲存庫開發的內容的成本,等同於使用第三方函式庫或服務,即使它是由坐在旁邊的人撰寫。

如果您在程式庫中遇到 Bug,您應該在對應的存放庫中解決此問題。 發行新的成品之後,您可以返回存放庫並進行必要的程式代碼變更。 不過,如果 Bug 位於不同的程式碼基底,或涉及不同的連結庫、工具或工作流程,您可能需要向該系統的擁有者尋求協助,並等候其回應。

使用Mono存放庫檢視時,管理複雜的相依性圖表可能會增加使用單一存放庫的難度。 讓不同團隊獨立工作的好處並不大。 某些小組可能會找到有效率的工作方式,但對於所有群組來說,這可能不是真的。 此外,其他小組可以選擇次佳的方法,否定其他人獲得的任何好處。 合併單一存放庫中的所有工作,可讓您專注於密切監視此單一存放庫。

在單一存放庫中,任何人都可以進行任何變更,這樣即避免了變更其他存放庫或等待小組代為修改的麻煩。

如果您在函式庫中發現 Bug,修復它就像在您自己的程式碼中尋找 Bug 一樣簡單。

注意

在 Azure DevOps 中,通常會針對專案內每個相關聯的解決方案使用不同的存放庫。