探索 monorepo 與多個存放庫

已完成

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

您應該如何組織程式碼存放庫? 開發小組的目標在於區分其軟體和存放庫的疑慮。 隨著時間經過,程式碼存放庫中充斥著不相關的程式碼和成品這並不罕見。

若談到組織您的存放庫,有兩個主要原理:使用單一存放庫 (Monorepo) 或多個存放庫。

  • Monorepo 是原始檔控制模式,其中所有原始程式碼都會保留在一個存放庫中。 讓所有員工一次存取所有內容很容易。 加以複製,就完成了。
  • 將您的專案組織成個別的存放庫稱為多個存放庫。

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

取用不在指定存放庫內開發之任何項目的成本,相當於使用第三方程式庫或服務 (即使其是坐在附近的人所撰寫)。

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

使用單一存放庫檢視時,管理複雜的相依性圖表可能會增加使用單一存放庫的困難。 讓不同的小組獨立工作的優點並不重要。 有些小組可能會發現有效率的工作方式,但並非所有群組都適用。 此外,其他小組也可以選擇次佳方法,否定其他人取得的任何優勢。 合併單一存放庫中的所有工作,可讓您專注於密切監視這個單一存放庫。

在任何人均可變更任何內容的單一存放庫中,避免了在其他存放庫進行變更或等候小組為您進行變更的麻煩。

如果您在程式庫中發現錯誤 (bug),其修正就像在您自己的程式碼中尋找錯誤 (bug) 一樣簡單。

注意

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