随笔·阅读约 1 分钟·
2026 年,为什么还要自己写代码?

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 跑。而想清楚这件事,有时候就得自己写几行。

分享到
微博Twitter

© 2026 四月

原文链接:https://www.aprilzz.com/ramble/why-write-code-2026