基于 Simon Willison 的 Agentic Engineering Patterns
写在前面
前几天看到 Simon Willison 的一篇文章,标题很直接:《Writing code is cheap now》。作为一个写了 5 年代码、最近疯狂用 AI 辅助开发的工程师,这篇文章点破了我最近一直困惑的一个问题——为什么有了 AI 写代码反而更累了?
答案很简单:我们还在用旧习惯处理新工具。
代码一直很贵
在 AI 出现之前,写代码是昂贵的。
一个熟练的开发者,写出几百行干净、可测试的代码,通常需要一整天甚至更多。这个成本约束塑造了我们所有的工程习惯:
宏观层面:
- 开会讨论需求,确保每行代码都花在刀刃上
- 功能必须 ROI 为正,而且要赚回开发成本的好几倍才值得做
- 技术选型谨慎,因为重构成本极高
微观层面:
- “这个函数重构一下会更优雅,但要花一小时,值吗?”
- “这个边界情况需要加测试吗?”
- “要不要为这个 bug 专门做个调试界面?”
每一个决定背后都是时间成本。
AI 让代码几乎免费
现在呢?
你描述需求,AI 10 分钟生成代码。你可以同时开三个会话,让 AI 分别写功能、写测试、写文档。并行开发不再是团队特权,一个人就能做到。
敲键盘的成本趋近于零。
这意味着过去很多"不值得"的决定,现在都值得重新评估。
但"好代码"依然很贵
Simon 列了一个"好代码"的 checklist,我逐条看了,发现 AI 只能帮你完成一半:
| 维度 | AI 能帮 | 你必须做 |
|---|---|---|
| 生成代码 | ✅ | |
| 验证代码真的能跑 | ✅ | |
| 确认解决的是正确问题 | ✅ | |
| 优雅处理错误情况 | ✅ 部分 | ✅ 关键判断 |
| 保持简单可维护 | ✅ | |
| 写测试 | ✅ | ✅ 设计测试策略 |
| 写文档 | ✅ | ✅ 确保文档准确 |
| 可扩展性设计 | ✅ |
AI 降低了"写"的成本,但没降低"判断"的成本。
生成一堆能跑但没人看得懂的代码,比不写还糟。
需要培养的新习惯
Simon 的建议很直接,我翻译一下:
每当你的直觉说"这个功能不值得花时间做",反手就丢给 AI 试试。
最坏结果:浪费几毛钱 token,10 分钟后发现确实不行。
最好结果:白捡一个功能,还能顺便生成测试和文档。
关键转变:从"时间成本思维"切换到"验证成本思维"。
以前:做这个值不值一整天?
现在:验证 AI 生成的结果值不值 10 分钟?
我的实践建议
基于过去几个月的高强度 AI 辅助开发,分享几个正在形成的新习惯:
1. “先跑再说"原则
不确定的功能,先让 AI 写个 MVP 出来看效果。比脑补快 10 倍。
2. 并行分支开发
同一个功能,让 AI 用不同方案各实现一遍。对比后再决定,而不是提前纠结。
3. 强制 Review 清单
AI 生成的代码必须过这几关:
- 我能在 30 秒内看懂它在干嘛吗?
- 错误处理覆盖了哪些情况?
- 有对应的测试吗?
- 如果半年后回来看,我能快速理解吗?
4. 文档即代码
AI 写的文档要随代码一起审。代码变了文档没更新,就是技术债。
最后
Agentic Engineering 不是让开发者变懒,而是让我们从"写代码"转向"判断代码”。
写代码确实便宜了,但设计、验证、维护的成本还在。真正的效率提升,来自于承认这个现实,然后重新设计我们的工作流。
Simon 说得好:这些最佳实践还在被整个行业摸索中。我们每个人都是实验者。