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。
相关文章
相关标签/搜索