項目管理的方式是多種形勢的,依據管理的方式類進行項目建倉。
mono或者mult其實都是項目管理的方式,只是兩種方式是剛好相反的,拿來一起說是,更方便記憶而已。
multrepo:將項目分化成為多個模塊,並針對每一個模塊單獨的開辟一個reporsitory來進行管理。
優點:1.團隊自己的IDE,語言,以及工作步調。
2.模塊更小,更易維護。
3.開發效率更高。
缺點:1.合並困難,每個模塊規范不同,同步和編譯時這些問題將會集體爆發。
2.難以保證穩定性。
3.由於可能存在不同語言開發,或者不同IDE的情況,新建或者更新構建變得困難
monorepo:是將所有的模塊統一的放在一個主干分支之中管理。不進行分庫存儲,當有特定的需要的時候進行分支,但是問題修改還是在主干上操作,並有專門人員合並到分支內容上,在特定需求完結的時候,分支也將會被廢棄。點擊這里,查看詳細介紹:
優點:1.統一的規范,語言,和IDE帶來的是結構的完整穩定。
2.按照統一的標准進行開發,是哦程序穩定性更良好,更易解讀。
3.標准化的開發流程,規避很多不必要的沖突與錯誤。
缺點:1.項目過大,難以管理。
2.由於統一的標准,不同的團隊可能需要對於新的規范和IDE進行了解學習,需要時間。
3.修改和開發可能變得繁瑣,減慢效率。
如果你們團隊選擇 monorepo,那主要的挑戰自然是隨着項目的發展,其會變得非常龐大(因為沒有根據模塊或功能拆分成不同 repo)。因此會需要很多的工具來應對這樣的挑戰。
- 你會需要強大的構建工具,比如 Google 的 Bazel, Facebook 的 Buck 和 Twitter 的 Pants。
- 倉庫變得太大,對你們的版本控制技術會有很大的挑戰。因為 Git 社區建議的是使用更多更小的代碼庫,Git 本身並不適合單個巨大的代碼庫。
- 因為所有的代碼都放在一起,你需要時刻保持警惕,以保持良好的項目結構和提交測試。
- 在這么大的 workspace 中工作或使用了非標准化的構建工具,你常用的 IDE 可能會遇到麻煩。Facebook 就選擇了構建自己的 IDE。