为什么会想做多模块仓库

常见动机有这些:

  • 把公共库拆出来复用
  • 一个仓库里维护多个服务或工具
  • 既想共享代码,又想让发布边界独立

这类需求都合理,但多模块仓库不是“天然更高级”,它只是另一种权衡。

最关键的判断标准

我会先问一个问题:这些代码到底是“一个系统里的不同目录”,还是“应该独立发布和演进的多个模块”?

如果只是目录拆分需求,单模块通常更省心。

如果确实需要独立版本、独立发布、独立依赖边界,那多模块才更合理。

多模块仓库最容易失控的地方

1. 模块边界不清

模块拆了,但职责没拆清,最后就会出现循环依赖或大量交叉引用。

2. 开发方式不统一

有人用 replace,有人用 go work,有人直接改 import path,这种仓库很快会变乱。

3. 发布策略模糊

如果模块之间谁该单独发版、谁该跟着一起变更都说不清,维护成本会持续上升。

我的经验

如果要走多模块仓库,至少要提前统一三件事:

  • 模块职责边界
  • 本地联调方式
  • 发版策略

我的复盘

多模块不是“越拆越高级”,而是“只有在边界足够清楚时才值得拆”。组织方式本身不重要,边界是否稳定才重要。