为什么会想做多模块仓库
常见动机有这些:
- 把公共库拆出来复用
- 一个仓库里维护多个服务或工具
- 既想共享代码,又想让发布边界独立
这类需求都合理,但多模块仓库不是“天然更高级”,它只是另一种权衡。
最关键的判断标准
我会先问一个问题:这些代码到底是“一个系统里的不同目录”,还是“应该独立发布和演进的多个模块”?
如果只是目录拆分需求,单模块通常更省心。
如果确实需要独立版本、独立发布、独立依赖边界,那多模块才更合理。
多模块仓库最容易失控的地方
1. 模块边界不清
模块拆了,但职责没拆清,最后就会出现循环依赖或大量交叉引用。
2. 开发方式不统一
有人用 replace,有人用 go work,有人直接改 import path,这种仓库很快会变乱。
3. 发布策略模糊
如果模块之间谁该单独发版、谁该跟着一起变更都说不清,维护成本会持续上升。
我的经验
如果要走多模块仓库,至少要提前统一三件事:
- 模块职责边界
- 本地联调方式
- 发版策略
我的复盘
多模块不是“越拆越高级”,而是“只有在边界足够清楚时才值得拆”。组织方式本身不重要,边界是否稳定才重要。