
2026 年,为什么还要自己写代码?
当 AI Agent 能写大部分代码时,一个资深工程师给出了出人意料的答案——写代码不是为了产出,而是为了思考。
原文来源:Software Doug — Doug Turnbull 探讨在 AI Agent 时代为什么人类仍然需要亲手写代码
当 AI 能写 80% 的代码之后
2026 年的软件行业有一个有趣的现象:几乎所有工程师都在用 AI 写代码,但最好的工程师仍然在亲手写代码。
这不是反 AI 的立场。Doug Turnbull 说得很清楚,他自己写的代码中「大部分也是 AI 生成的」。但他的核心观点是:我们不应该把写代码这件事完全外包出去。不是因为 AI 写得不好,而是因为写代码本身就是一种思考方式。
这个观点在到处都是「用自然语言编程」的声音中,显得格外清醒。
—— 广告 ——
软件工厂,不只是软件
要理解为什么还要写代码,首先得理解工程师在 2026 年的真正角色。
Turnbull 提出了一个「软件工厂」的概念:工程师的真正职责不只是写出今天能运行的软件,而是维护和优化那条让 AI 高效产出代码的流水线。
这条流水线有两部分:
主动的:编写 Skills、AGENTS.md、知识库——让 AI 理解项目的上下文和约定。
被动的:自动化评估体系——测试、lint、类型系统、eval、甚至用另一个 AI 来检查 AI 的输出。
这些基础设施决定了 AI 产出的质量上限。一个没有测试的项目,AI 写的代码就是盲写;一个有完善测试的项目,AI 写的代码即使有 bug,也能在流水线上被拦住。
Turnbull 的比喻很到位:「即使是一个不太聪明的模型,只要在正确的约束框架内,也能产出足够好的变更。」软件工程师的工作不是写每一行代码,而是构建那个让 AI 能高效工作的约束框架。
写代码是为了思考
但问题来了:如果大部分代码都是 AI 写的,工程师亲手写代码还有什么意义?
Turnbull 给出了五个理由,每一个都来自实践而非理论:
1. 注意力和理解
被动地阅读代码、审核 AI 的输出,会让你和代码之间产生一层「隔膜」。只有亲手写一遍,你才能真正感受到代码的脆弱性在哪。Turnbull 说得很直白:「亲手写代码就像戴着疼痛传感器的 VR——你会在实际写到某个地方时突然意识到『哦,这里改起来很痛』。」
如果对人类开发者来说都很难安全修改的部分,对 AI Agent 来说只会更难。
2. 所有权和参与感
如果工程师只是「批准 AI 的输出」(反向 Centaur 模式),对代码的拥有感会迅速消失。代码的「馊味」(slop)会悄悄积累。当工程师亲手写出一个方案的骨架,再让 AI 去填充模式化的部分,他对最终结果才有真正的所有权。
这个区别很微妙但很重要:你是代码的作者,还是代码的审批者?
3. 思维的精确性
英语(或者任何自然语言)在描述计算时天生就是不精确的。写代码是在「执行环境中思考」——每一个变量、每一个分支、每一个边界条件,都要精确地表达出来。
Turnbull 的原话是:「写代码帮我理清思路。」这不是情怀,而是方法论:对算法性工作来说,用代码来表达比用提示词来表达有效得多。
4. 发现和修复脆弱性
手动清理代码、去除例外情况、统一模式的习惯,能让「软件工厂」越来越好。直接调试代码能发现测试策略的盲点,在 bug 扩散前就消灭它们。这些事如果完全交给 AI,问题只会被掩盖而非解决。
5. 对抗 AI 的局限性
AI Agent 有一个天然的倾向:偏向安全、最小的变更。它们会放大人类某个糟糕决策的影响。比如你早期用了一个不太好的本地存储方案,AI 会「尊重」这个选择,在上面继续添砖加瓦。
只有亲手去阅读、删除、重构代码,才能打破这种「继承性技术债务」的循环。
反向 Centaur 陷阱
有一种流行的观点认为,未来的开发模式是「人只想,AI 做」。人定方向,AI 写代码。听起来很美好。
但 Turnbull 用「反向 Centaur」来形容这种模式——不是人在马上操控,而是马在背着人跑。在这种模式下,工程师逐渐失去了对代码细节的感觉,失去了对系统脆弱性的直觉,最终变成了一个「只会点头」的审批机器。
如果你发现自己一天的工作就是打开一堆 AI 生成的 PR,扫一眼就 approve,那你可能已经掉进了这个陷阱。
什么时候应该亲自下场
Turnbull 给出了一个判断标准:当你遇到以下情况时,放下 AI,亲手写代码:
- 你发现自己在反复修改 AI 生成的同一段代码
- 你觉得自己对某个模块的理解越来越模糊
- 你连续 approve 了几个自己不太确定的变更
- 你发现自己无法快速定位一个 bug 的原因
这些信号说明你需要重新「连接」代码。去读一读、改一改、删一删。不是为了产出什么功能,只是为了重新建立那种直接的理解。
小建议
2026 年的现实是:大部分代码会由 AI 生成。这不丢人,也不可耻。但有品味的工程师会在三件事上保持手写:
一是基础设施。测试、CI/CD、架构文档、AGENTS.md——这些定义了软件工厂质量的东西,值得亲自打磨。
二是核心算法。那些你真正需要理解透彻的逻辑,亲手写一遍和审核一遍的效果完全不同。
三是重构和删除。AI 不会主动删代码。只有人才有勇气说「这段逻辑不需要了,删掉它」。而这种勇气来自对系统的真正理解。
AI 写代码的速度不重要,重要的是你想清楚再让 AI 跑。而想清楚这件事,有时候就得自己写几行。
© 2026 四月
原文链接:https://www.aprilzz.com/ramble/why-write-code-2026
相关文章
「The Coming Loop」—— Armin Ronacher 谈 AI 编程的循环时代
Flask 作者 Armin Ronacher 发表了一篇令人深思的博文,探讨 AI 编程从「交互式提示」向「循环化自动运行」的转变。当你的工作不再是写代码,而是写一个不断调用 AI 的循环时,软件开发的核心逻辑正在被重写。
Vibe Coder 和软件工程师的七条分界线
Vibe Coder 和软件工程师的区别不是用什么工具,而是责任从哪开始、到哪结束。一篇文章帮你判断自己该用什么模式工作。
像人类会维护那样写代码
用 AI 写代码时,你每图一时之便留下的快捷方式,都在训练 AI 养成更差习惯。Scott Robinson 讲述了一个被忽视的陷阱:你写的每一个快捷方式,都成了 AI 的编码风格。