生成很便宜,审阅很贵:别再让 AI 垃圾代码上线了
关联
在一场演讲里,自称垃圾管理员的工程经理 Gabriel Martinez(Gabo)花了十几分钟讲一个让他愤怒的话题:
slop——AI 大量生成、但没人真正理解就合并上线的代码。他不是反对 AI,而是反对判断力的缺席。
slop 到底是什么?
slop 不是AI 写的代码。Gabo 的定义是:思考还没结束,产出看起来就已经完成了。歧义靠猜来解决,取舍靠碰运气,没人真正负责。
产出有了,理解没发生。
真正的危险不在于机器做了坏选择,而在于工程师根本没意识到有选择要做——没碰到歧义,没感到约束,没发现那个本会改变设计的边界情况。
软件是选择的记录,看不到选择就没法拥有它,不拥有它就不是在做工程,只是按合并按钮 。
写代码的成本在降,理解代码的成本没降
他提醒:每一行代码都是负债,最好的代码是不写代码。AI 让写代码更便宜,但理解一个软件程序的成本没有降。
系统里的主要流程、边界、数据模型、产品行为,还是得有人懂。
一个已经很乱的系统,AI 不会救你,只会把这团泥球滚得更大更快。
一小时做出来的原型,骗了所有局外人
现在任何人都能一小时凭感觉编程出一个可点击的原型。
问题在于,不住在代码库里的人——老板、产品、客户——会把它当成「难的部分已经做完了」的证据。
他们看不到的是最后一公里:读代码、测行为、承担取舍、发现遗漏的需求、判断这东西配不配进系统 。
SQLite 的创造者说过,别人提交的代码不是免费的,那是要求你替他测试、文档、维护 25 年。
生成便宜,评估昂贵
这是全场最核心的一句:「Generation is cheap, but evaluation is expensive」——生成很便宜,评估很贵 。如果 AI 产出的东西多到人评不过来,它就不是在加速团队,而是在制造瓶颈。
他见过最平庸的例子:给 10 条要点,拿回来 20 页文档,文辞漂亮,但你得花几小时判断里面有没有真正的思考。
模糊的任务变成巨大的代码变更,真正的工作只是被转移给了审阅者。
慢的人看起来在输,其实在赢
坏工程师不抠细节、不细化规格,产出反而更快;认真的人显得慢。
这种焦虑会传染——Gabo 坦言自己也曾因为周围人合并得太快,放弃了平时的审查细致度。
激励机制只奖励把代码合进去,就会出事。奖励应该围绕产出价值、优雅务实的设计、清晰的测试。
60 年的软件智慧并没有被 AI 作废
可组合的代码、好的模式、扎实的实践依然重要。
AI 能把机器码到 Ruby 一路的抽象再推一层,但不能取消「理解系统如何组装在一起」的需要。
他的解法是压缩审阅面:画图不是装饰性文档,而是让人能看懂系统的形状——服务边界、数据流、状态转换、失败模式;
主流程做成可审阅的表面,实现细节推到叶子。
认知开销是每个工程师改代码前都要交的税,AI 不免税,还会加重它——除非有约定管着。
约定越死,AI 越好用
Rails 是他心中的标杆:框架用约定激进地砍掉决策面,一件事只有一种正确做法。
他离开 Rails 4 年后回来,发现事实标准还是那些模式,立刻就能上手。
这种只有一条路的环境特别适合 AI 开发,因为 agent 不会被几十种竞争方案搞糊涂。
答案就是:约定、标准、写清楚的流程、小的可审阅单元、清晰的完成定义。路越明显,slop 越无处藏身 。
他们团队把这些经验做成了 ORC:不是用更多 agent 解决问题,更不是把工程判断自动化掉,而是把拆任务、管上下文、对比方案这些反复出现的人肉流程固化进工作流。
目标不是更快地凭感觉编程,而是带着判断的编排。
本集带走
- slop 的本质是思考没做完、产出看起来已完成;危险在于工程师没意识到有选择要做。
- 生成便宜、评估昂贵:AI 产出超过人的评估能力时,就变成瓶颈而非加速。
- 代码行数永远是垃圾指标,烧 token 多少同样不代表产出——60 年的软件智慧没被 AI 作废。
- 原型速成会骗住局外人,让他们以为难的部分已经结束;真正的工作在最后一公里。
- 死板约定 + 小审阅面 + 清晰图示,是对抗 slop、也更适合 agent 的工程方式。
Slop 就是生成速度超过判断速度时产生的结果。
Slop is what happens when generation outruns judgment.
—— Gabriel Martinez · [00:41]
Slop 是那种在思考还没完成之前就看起来已经完工的产出。
Slop is output that looks finished before the thinking is finished.
—— Gabriel Martinez · [00:55]
危险在于工程师从未意识到那里原本存在一个需要做的选择。
The danger is that the engineer never noticed that there was a choice to make.
—— Gabriel Martinez · [01:16]
但软件就是一份选择记录——技术选择、产品选择、运维选择、面向用户的选择。
But software is a record of choices, technical choices, product choices, operational choices, user-facing choices.
—— Gabriel Martinez · [01:35]
而如果我们不为它们负责,我们就不是在真正地做工程。
And if we do not own them, we are not really engineering.
—— Gabriel Martinez · [01:46]
在一个一切皆有可能的世界里,决定构建什么比以往任何时候都更重要。
In a world where anything is possible, deciding what to build is more important than ever.
—— Gabriel Martinez · [02:56]
创建代码的成本在下降,但理解一个软件程序的成本并没有。
The cost of creating code is falling, but the cost of understanding a software program is not.
—— Gabriel Martinez · [03:13]
AI 可以生成代码,但它无法神奇地给一个混乱的系统带来连贯性。
AI can generate code, but it cannot magically give a messy system coherence.
—— Gabriel Martinez · [03:49]
但如果系统已经是一团泥球,智能体并不能把你从泥潭中拯救出来。
But if the system is already a big ball of mud, the agent does not rescue you from the mud.
—— Gabriel Martinez · [04:01]
但问题在于,不生活在代码库里的利益相关者常常把那个原型体验为「难的部分已经结束了」的证据。
But the problem is that stakeholders that do not live in the codebase often experience that prototype as evidence that the hard part is over.
—— Gabriel Martinez · [05:59]
他们完全没想到最耗时的部分,也就是人的部分、最后一公里,判断力所在的地方。
They’re not at all thinking about the most time-consuming bits, the human parts, the last mile, where the judgment lives.
—— Gabriel Martinez · [06:32]
如果激励驱使人们尽快提交 PR,那我们迟早会遭到残酷的清醒。
And if incentives are driving people to get PRs in, then we’re going to be in for a rude awakening.
—— Gabriel Martinez · [08:29]
人类根本不可能完全理解这么大的改动中所有重要的部分。
There’s no way in hell that a human can fully understand all the important bits of a change that big.
—— Gabriel Martinez · [08:51]
生成是便宜的,但评估是昂贵的。
Generation is cheap, but evaluation is expensive.
—— Gabriel Martinez · [10:19]
60 年的软件智慧并没有被 AI 作废。
60 years of software wisdom hasn’t been invalidated by AI.
—— Gabriel Martinez · [11:28]
认知开销是每个工程师在做出有意义的改动之前都必须支付的一笔税。
Cognitive overhead is a tax every engineer has to pay before they can make a meaningful change.
—— Gabriel Martinez · [13:23]
未来是带有判断力的编排。
The future is orchestration with judgment.
—— Gabriel Martinez · [16:51]
顺着「AI 编程」挖下去
- Vibe debugging:代码生成之后,生产环境才是真正的硬仗同概念:vibe coding、智能体 (agent)、评估 (evaluation)
- 不会写代码的人如何成为全职 vibe coder同概念:vibe coding、智能体 (agent)
- OpenAI 内部怎么用 AI 写代码:从巫师比喻到一人独角兽的二阶效应同概念:vibe coding、智能体 (agent)
换个口味
- Andrew Wilkinson:别追咖啡馆,去找没人要的钓鱼洞同概念:vibe coding、智能体 (agent)
- AI Engineer 大会背后的社区逻辑与创业生存法则同概念:vibe coding、智能体 (agent)
- 从快倒闭到剑指十亿美元ARR:Replit Agent的生死豪赌同概念:vibe coding、智能体 (agent)
