对于Monorepo的理解

对于Monorepo的理解

传统的项目管理方式就是一个项目便新建一个代码仓库地址。 Monorepo核心就是把所有项目放在一个代码仓库中进行管理。然后不同
项目使用不同的文件夹进行管理,一般情况下,以Vue3为例Monorepo的项目架构是这样
对于Monorepo的理解

├── packages
|   ├── pkg1
|   |   ├── package.json
|   ├── pkg2
|   |   ├── package.json
├── package.json

这样分割代码,每个项目的开发、其实只需要关注少数几个文件夹便可以了。

Menorepo 管理方案

参考 http://www.zyiz.net/tech/detail-141856.html

Monorepo 的优点

  • 可见性
    每个人都可以看到其他人的代码,这样可以带来更好的协作和跨团队贡献——不同团队的开发人员都可以修复代码中的bug,而你甚至都不知道这个bug的存在。
  • 更简单的依赖关系管理
    共享依赖关系很简单,因为所有模块都托管在同一个存储库中,因此都不需要包管理器。
  • 唯一依赖源
    每个依赖只有一个版本,意味着没有版本冲突,没有依赖地狱。
  • 一致性
    当你把所有代码库放在一个地方时,执行代码质量标准和统一的风格会更容易。
  • 共享时间线
    API或共享库的变更会立即被暴露出来,迫使不同团队提前沟通合作,每个人都得努力跟上变化。
  • 原子提交
    原子提交使大规模重构更容易,开发人员可以在一次提交中更新多个包或项目。
  • 统一的CI/CD 和 构建流程

Monorepo 的缺点

  • 性能差
    代码都聚集在一起,IDE, GIT 都会变得缓慢
  • 破坏主线
    每个人都可以提交代码,若主线遭到破坏,会影响到所有人。
  • 学习困难
    大量的代码都紧密耦合在一起,增加了学习成本
  • 权限管理困难
    GIT没有项目内目录的权限控制,只能通过人为的CodeView
上一篇:go的微服务框架go-zero


下一篇:每秒7亿次请求,阿里新一代数据库如何支撑? | 开发者必读(119期)