跳转到主内容
博客

急诊室与消失的护城河

Aima Service 重构复盘。产品像急诊室,用户不在乎装修,只在乎医生能不能看病。Claude Code 和 Codex 交替跑了一周多,130 万行代码落地。回头一看,代码量这条护城河可能已经不在了。

4 分钟阅读
分享:
急诊室与消失的护城河

最近把 Aima Service 重构了一遍。花了一周多,过程里冒出不少想法,记一下。

急诊室

Aima Service 不是那种天天打开的工具。更像是设备的急诊室,平时想不起它,出了问题才来。

这就导致一个很别扭的局面:成功的时候用户没感觉。问题解决了,"嗯,还行",走了。因为没经历过痛苦嘛,自然不觉得解决了多大的事。

反倒是失败的时候有意思。

失败分几种。智能体认真干了但搞不定,告诉你任务失败,这算一种。声称搞定了你一试发现没有,假成功,这也算一种。但最要命的是通道本身坏了。崩溃、卡死、跑着跑着断了。

前面两种还好。就像去急诊,医生看了半天没治好,你换一家就是了。最后那种不行。你打了 120,车来了,到了急诊室门口发现关门了。或者进了门,挂号系统崩了,医生看了一半人不见了,有人出来跟你说"不好意思,今天打烊了"。

这个才是真的让人崩溃。

装修没用,医生得在

想明白这件事,优先级就清楚了。

急诊室,装修再豪华没用,沙发再舒服没用。就看两样:门开不开,医生能不能看病。

之前的版本功能上够用,但稳定性不行。跑任务经常 bug 一堆,动不动崩溃,各种莫名其妙的卡死。急诊室的门开着,医生不在。

所以做了一次彻底重构。不加新功能,就是把地基重打。

两个模型轮着上

重构用了 Claude Code 和 Codex 两个模型,轮流做。

先把文档体系设计好,让两个模型各自读一遍文档和代码,列出要做的事。然后 Claude Code 先跑一轮重构,做完交给 Codex 再来一轮。来回交替。

为什么不只用一个?试过,容易跑偏。Claude Code 架构感强,能看到结构层面的问题,但有时候太保守。Codex 推进速度快,更敢动手,还会回头扫一些细节,但偶尔太粗放。只让一个做,缺陷会被放大。交替着来反而节奏最好,一个发现的问题另一个经常能补上。

后来查了一下,NeurIPS 2025 有一篇 "Lessons Learned",专门分析不同 LLM 怎么互相补位,结论是大概 3 个 agent 效果最好,再多就递减了。跟实际感受对得上。

每轮让模型自己拉 agent team 并行跑,一个任务三四个小时很正常。反正异步的,人该干嘛干嘛,偶尔看一眼提几个问题就行。

CI/CD 吃掉的时间比想象中多

功能重构大概一周就七七八八了。真正耗时间的是后面。

代码改了一大片,上线之前靠什么兜底?自动化测试、构建检查、集成验证,一个都跑不掉。流水线跑一次几十分钟过去了,有问题改完再跑,又几十分钟。后面反反复复调测试用例、优化流水线,光测试代码就写了好几万行。

大家聊 AI 写代码,关注的都是"多快"。但真要上生产,CI/CD 和测试占掉的工程量可能超过一半。这部分 AI 也能做,但轮次多、调试多,急不来。

130 万行

重构完生成了一份报告,看了一下数字。

功能上没加新东西,看起来平平无奇。但架构从之前"跑个任务 bug 一堆"的状态变成了能扛 10 万级用户的设计,模块拆分干净了很多,分布式 worker、海外联邦都做进去了。

代码量让我有点意外:抛开文档约 130 万行,加上文档 170 万行。八九天,一个非专业的人,两个 AI 模型。

然后我想起来一件事。

护城河干了

前几年有个说法挺流行的:代码量就是软件公司的壁垒。几百万行代码堆在那里,别人想抄也抄不了。

我记得以前读过相关的东西,当时觉得有道理。思科 IOS XE 有 1.9 亿行代码,3000 多人在维护,每年出 700 多个新功能。SAP 的 ABAP 代码超过 2.5 亿行,能看懂的人越来越少。这些公司确实是靠"这坨东西太复杂了,没人能替代"撑着的。

不过仔细想想,代码量从来不是壁垒的全部。思科的护城河是 1.9 亿行代码加上生态系统和切换成本,还有品牌。SAP 的壁垒不是 ABAP 难写,是 42.5 万客户里只有 5% 在七年内迁到了 S/4HANA。Lidl 试过,烧了 5 亿欧元放弃了。Revlon 亏了 6400 万美元销售额。复杂度制造的锁定效应,比代码本身顽固得多。

但现在有意思了。今年初 Marek Kowalkiewicz 写过一篇 "Drying the Moat",里面提到 Anthropic 演示 AI 能读懂和现代化 COBOL 系统之后,IBM 一天市值蒸发了 400 亿美元。代码复杂度制造的其实是一种"理解不对称":你看不懂我的代码,所以你离不开我。AI 把这层不对称给抹掉了。

回头看我自己这次:八九天,一个人带两个模型交替跑,130 万行代码的系统已经在线上跑着了。有分布式架构,有 CI/CD 流水线。

130 万行当然不等于思科那 1.9 亿行,差两个数量级。生态和客户锁定也不是代码能替代的。但"代码复杂度"这条腿,已经在被抽掉了。剩下几条腿能撑多久,不好说。

想到就做

回头看整个过程,有几点感受。

AI 做产品级的软件,能做。这次出来的东西已经在线上跑了,有用户在用,不是 demo。难的地方在 CI/CD 和测试,这些费时间,但 AI 也能做,就是得多跑几轮。

重构这件事也没那么可怕了。以前接手一坨屎山代码,光搞清楚它在干嘛就得好几周。现在模型读进去几分钟就能画出架构图来。一周从屎山到新架构,技术债清得比人工还干净。

最大的变化可能是心态上的。以前重构是个大决策,要算投多少人、花多长时间、风险大不大。现在觉得代码库撑不住了就重来一个。有新技术出来也一样,直接用新的重新构建。代码这个东西,越来越像耗材了。

当然代码还是产品的骨架,这个没变。但生产骨架的成本,跟以前已经不在一个量级。

推荐阅读

订阅博客更新

新文章发布时第一时间通知你,不会发送垃圾邮件。

仅用于博客更新通知,随时可以取消订阅。

评论

或匿名评论
0/2000