本文基于 Simon Willison 的《Agentic Engineering Patterns》,探讨 AI Coding 普及后的编程新范式。
📖 全文总结
文章围绕 Simon Willison 的《Agentic Engineering Patterns》展开,探讨 AI Coding 普及后的编程新范式。
在 AI 助力下,写代码成本降低,决策方式改变,但好代码标准未降,对代码判断力更重要。
Simon 提出构建一个正反馈飞轮:
- 代码成本降低促使多尝试
- 囤积可运行代码成果为资产
- 通过组合资产创造更多可能
同时面对认知债务,用 AI 理解 AI 写的代码,并以 TDD 等方式测试保证质量。
Simon 强调 AI 产出需审核,实验与正式项目隔离,观点表达等亲自完成。
总之,多数人纠结工具时,关键是启动自己的编程飞轮。
✨ 重要亮点
1. 编程成本改变与决策之变
过去:
- 开发者写几百行优质代码需一天
- 软件工程决策围绕此成本
- 先衡量是否值得做
现在:
- AI Coding 使成本骤降
- 出错率降低,运行时长增加
- 决策方式变为:先丢给 agent 尝试
核心观点:
- 好代码要求未变
- 对代码判断力更关键
- 这是新编程模式的起点
2. 囤积可运行代码
误区:
多数人选择多写代码,但这是被动囤积知识。
Simon 的做法:
- 囤积可运行代码,即自己动手验证过、能直接运行的代码
- 而非仅收集”外卖菜单”
比喻:
- 就像积累做过的菜的配料和步骤
- 而非仅收集菜谱或外卖菜单
价值:
- Simon 自身积累了大量可运行代码资产
- 这是编程飞轮的第一步
3. 代码组合创造更多可能
囤积代码后,通过组合实现更多功能:
案例:浏览器端 PDF OCR 工具
- 功能:PDF 转 OCR
- 实现方式:将两段已有代码交给 agent 整合
- PDF 转图片
- 图片提取文字
组合策略:
- 让 agent 调用以往代码
- 利用本地仓库
- 借鉴他人开源仓库
- 重组借鉴,实现技巧的无限复用
效果:
- 创造更多新事物
- 快速实现复杂功能
4. 应对认知债务
问题:
让 agent 写代码会积累认知债务,如不理解复杂应用逻辑。
Simon 的解决办法:
用 AI 理解 AI 写的代码
案例 1:可视化词云放置过程
- 工具:Claude Code
- 功能:写动画页面可视化词云放置过程
- 目的:通过可视化理解代码逻辑
案例 2:代码走读文档
- 让 AI 为项目做代码走读文档
- 防止 AI 在解释过程中出错
- 确保对代码的理解
核心原则:
- 不能让 AI 写了代码就不管
- 必须通过某种方式理解和掌控
5. 重视测试保证质量
Simon 的实践:
TDD(测试驱动开发)
- 建议:让 agent 用 TDD 方式写代码
- 开工前先跑现有测试
测试的价值:
保证代码质量
- 确保 AI 生成的代码符合质量标准
- 避免低级错误
让 agent 了解项目
- 了解项目的验证方式
- 了解项目的规模和边界
- 后续改代码能自觉测试
质量护栏
- 给 agent 装上质量护栏
- 确保便宜的代码并非烂代码
🎯 核心观点
编程飞轮
1 | 代码成本降低 → 多尝试 → 囤积可运行代码 → 组合创造 → 更多可能 |
新编程模式的关键
对代码的判断力更重要
- 好代码标准未降
- AI 只是工具,判断在人
囤积可运行代码
- 被动囤积知识 vs 主动囤积代码
- 这是飞轮的起点
用 AI 理解 AI
- 避免认知债务
- 确保代码可控
测试是质量护栏
- TDD 方式
- 让 AI 自觉测试
💡 启示
多数人纠结工具
- 哪个 AI 更好用?
- 哪个编辑器更强大?
- 哪个框架更流行?
关键是启动自己的编程飞轮
不要纠结工具,而是:
- 开始囤积可运行代码
- 尝试组合创造
- 用 AI 理解 AI
- 重视测试质量
当别人还在选择工具时,你的编程飞轮已经开始转动。
📝 实践建议
立即行动
建立代码库
- 分类整理你的代码
- 确保可运行
- 添加说明文档
尝试组合
- 找到两个功能
- 让 AI 组合
- 验证结果
用 AI 理解代码
- 让 AI 解释复杂逻辑
- 生成可视化
- 创建代码走读文档
测试优先
- 先写测试
- 再让 AI 写代码
- 运行测试验证
长期习惯
- 每次完成功能,整理为可复用代码
- 遇到问题,先考虑能否组合已有代码
- 定期用 AI 审查和理解代码库
- 保持测试覆盖,确保质量
标签: #AI开发 #编程范式 #读书笔记