monorepo和multrepo的簡介

項目管理的方式是多種形勢的,依據管理的方式類進行項目建倉。工具

 

mono或者mult其實都是項目管理的方式,只是兩種方式是恰好相反的,拿來一塊兒說是,更方便記憶而已。學習

multrepo:將項目分化成爲多個模塊,並針對每個模塊單獨的開闢一個reporsitory來進行管理。測試

     優勢:1.團隊本身的IDE,語言,以及工做步調。ui

        2.模塊更小,更易維護。spa

        3.開發效率更高。版本控制

     缺點:1.合併困難,每一個模塊規範不一樣,同步和編譯時這些問題將會集體爆發。項目管理

        2.難以保證穩定性。開發

        3.因爲可能存在不一樣語言開發,或者不一樣IDE的狀況,新建或者更新構建變得困難get

 

monorepo:是將全部的模塊統一的放在一個主幹分支之中管理。不進行分庫存儲,當有特定的須要的時候進行分支,可是問題修改仍是在主幹上操做,並有專門人員合併到分支內容上,在特定需求完結的時候,分支也將會被廢棄。點擊這裏,查看詳細介紹同步

     優勢:1.統一的規範,語言,和IDE帶來的是結構的完整穩定。

        2.按照統一的標準進行開發,是哦程序穩定性更良好,更易解讀。

        3.標準化的開發流程,規避不少沒必要要的衝突與錯誤。

     缺點:1.項目過大,難以管理。

        2.因爲統一的標準,不一樣的團隊可能須要對於新的規範和IDE進行了解學習,須要時間。

        3.修改和開發可能變得繁瑣,減慢效率。

 

若是大家團隊選擇 monorepo,那主要的挑戰天然是隨着項目的發展,其會變得很是龐大(由於沒有根據模塊或功能拆分紅不一樣 repo)。所以會須要不少的工具來應對這樣的挑戰。

  • 你會須要強大的構建工具,好比 Google 的 Bazel, Facebook 的 Buck 和 Twitter 的 Pants
  • 倉庫變得太大,對大家的版本控制技術會有很大的挑戰。由於 Git 社區建議的是使用更多更小的代碼庫,Git 自己並不適合單個巨大的代碼庫。
  • 由於全部的代碼都放在一塊兒,你須要時刻保持警戒,以保持良好的項目結構和提交測試。
  • 在這麼大的 workspace 中工做或使用了非標準化的構建工具,你經常使用的 IDE 可能會遇到麻煩。Facebook 就選擇了構建本身的 IDE。
相關文章
相關標籤/搜索