Wink Pings

工程师嘴上骂monorepo,Shopify却靠它喂AI agent

Tobi Lutke说迁移monorepo是“每个工程师都恨,但用上就回不去”的决定。Burke补了一刀:对Shopify的agents是福音。评论区从Google代码库吵到PR review。

Shopify的Tobi Lutke在X上回忆,他告诉MParakhin公司准备迁到monorepo时,对方给了个判断:每个工程师都会痛恨迁monorepo这个想法,但一旦用上,没人愿意再去一家不用monorepo的公司。Tobi的结论很直接:“我们肯定要做。”

这条推文下面,Burke跟了一句更具体的:迁移monorepo对Shopify的agents是福音。需要花心思做工具,也有缺点要花力气缓解,但他不会回去。

背景补一句:monorepo是把多个项目、服务、包放在同一个代码仓库里。多repo则是按业务或服务拆成很多仓库。两者吵了十几年,现在AI agent加入战场,争论有了新变量。

反对声也在。Darren Shepherd说,他讨厌“monorepo适合agents”这个说法,仍然讨厌monorepo,最好的扩展方式是避免扩展。后面有人补刀:很快会出现一篇inspirational post,讲怎么搬离monorepo。

但支持者的理由很具体。Steven Bower说,agents跨仓库也能干活,monorepo真正解决的是PR review瓶颈。改动跨多个仓库时,要开多个互相依赖的PR,每个都有自己的review延迟,后续PR还会卡在依赖和版本死锁里。要让agent跑得快,得去掉速度约束和重复劳动,monorepo两个都去掉了。

Giorgi Dogadze把话讲得更短:对agent来说,赢的是原子变更。一个PR同时更新API和所有调用方,CI一起检查。拆到多个仓库,agent开三个PR,最后还得人来排部署顺序。

Lloyd Jose Fernandez的观察是搜索。agent刚开始干活时,会花时间判断答案在哪个仓库。只有一个仓库,这个问题直接消失。

有人贴出Google的论文截图:Google大部分代码存在一个统一的源代码仓库里,对所有软件工程师开放。Chrome和Android等少数项目例外。

Google论文截图:大部分代码存储在单一统一源代码仓库

评论区还有几个比喻。有人说monorepo像升降桌,换的时候人人骂,换完就闭嘴;有人说法律行业已经用了几个世纪的monorepo,叫判例法,所有人都恨,但没人能不用它干活。也有工程师提醒,monorepo需要配套工具,不是把代码倒进一个文件夹就完事。工具、CI、权限、构建缓存,缺一个都会变成新税。

回到Shopify这条线。Tobi和Burke都没有说monorepo没有代价。Burke的原话是“需要一些有想法的工具,也有一些缺点要花很多努力缓解”。但他们的判断是,在agent参与开发之后,跨仓库协调的成本被放大了,大到一个程度,值得把代码收进一个仓库。

这大概就是monorepo的尴尬:迁移前,工程师恨它;迁移后,工程师离不开它。AI agent只是把这种恨和离不开,同时加速了。

发布时间: 2026-11-02 01:29