缘起
最近经常看到
Monorepo
和MicroService
被提及这里做一下总结
What is it
-
Monorepo: 是指单一代码库
在版本控制系统的单个代码库里包含了多个项目之间的代码,项目之间可能是相关的,但通常在逻辑上是独立的,可以有单个或者多个不同的团队维护。
那既然有 单一代码库与之对应的就是
多代码库
即:MultiRepos -
MicroService: 微服务架构
把一个大型的项目服务拆分成多个独立的单元,单元有独立的功能和模块承担不同的功能,相互之间可以通信建立连接
Monorepo
Monorepo 不是一个新的东西,在软件开发行业它已经存在很久了,许多开源项目已经成功使用了单一代码库 👇🏻
-
Larave:一个用于Web开发的PHP框架。
-
Babel:一个用户Web开发的流行的JavaScript编译器,其单一代码库包含了完整的项目及其所有插件。
-
React、Ember、Meteor 等前端框架都使用单一代码库。
它的优势
-
可见性(Visibility):每个人都可以看到其他人的代码,这样可以带来更好的协作和跨团队贡献——不同团队的开发人员都可以修复代码中的bug,而你甚至都不知道这个bug的存在。
-
更简单的依赖关系管理(Simpler dependency management)