请注意,本文编写于 1199 天前,最后修改于 971 天前,其中某些信息可能已经过时。
目录
Monorepos
Multirepos
单一代码库的优势
单一代码库的缺陷
Monorepos
单一代码库指由不同团队维护的多个关联项目放在同一个代码库中去维护。
Multirepos
多代码库则是将每个项目放在独立的代码库中去维护,虽然这些项目是由相关性的。
单一代码库的优势
- 可见性
不同的团队可以看到所有的代码,便于团队之间的协作和沟通。比如:不同团队的人都可以修复代码中的bug。
- 更简单的依赖关系
不同项目中的依赖变得简单,甚至都不需要进行包管理。
- 唯一依赖源
所有的依赖进行统一的管理,每一个依赖使用同一个版本,不会出现版本冲突等问题导致依赖地狱。
- 一致性
当把代码放在同一个库以后,执行统一的代码规范就变得简单了。
- 共享时间线
API或共享库的变更会很快地暴露出来,迫使每个人及时跟上变化。
- 原子提交
原子提交使大规模重构变得容易,开发人员可以在一次提交中对多个项目进行修改。
- 隐式CI
因为所有项目都在同一个仓库进行维护,因此可以保证持续集成。
- 统一的CI/CD
可以为仓库中的项目使用统一的CI/CD流程。
- 同一个构建流程
可以为仓库中的项目使用相同的构建流程。
单一代码库的缺陷
- 性能低
因为大量的代码放在同一个仓库,会使一些操作耗费大量的时间,代码编辑器会变得缓慢,生产力受到影响。
- 破坏主线
主线的损坏会影响到维护仓库的每一个人。
- 学习曲线变得陡峭
大量的紧密耦合的项目使得新员工学习起来变得困难。
- 大量的数据
每天仓库上会有大量的数据提交。
- 所有权
维护目录的所有权将会变的困难,因为任何人都有权限修改整个仓库。
- 大量的代码审查通知
通知会变得嘈杂,大量的pull requests和code reviews会使通知查看起来变得复杂。
本文作者:谭三皮
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!