AI Coding 普及后的新范式:构建你的编程飞轮

本文基于 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 方式写代码
  • 开工前先跑现有测试

测试的价值:

  1. 保证代码质量

    • 确保 AI 生成的代码符合质量标准
    • 避免低级错误
  2. 让 agent 了解项目

    • 了解项目的验证方式
    • 了解项目的规模和边界
    • 后续改代码能自觉测试
  3. 质量护栏

    • 给 agent 装上质量护栏
    • 确保便宜的代码并非烂代码

🎯 核心观点

编程飞轮

1
2
3
代码成本降低 → 多尝试 → 囤积可运行代码 → 组合创造 → 更多可能
↑ ↓
←←←←←←←←←←←← 正反馈循环 ←←←←←←←←←←←←←←←←←←←←←

新编程模式的关键

  1. 对代码的判断力更重要

    • 好代码标准未降
    • AI 只是工具,判断在人
  2. 囤积可运行代码

    • 被动囤积知识 vs 主动囤积代码
    • 这是飞轮的起点
  3. 用 AI 理解 AI

    • 避免认知债务
    • 确保代码可控
  4. 测试是质量护栏

    • TDD 方式
    • 让 AI 自觉测试

💡 启示

多数人纠结工具

  • 哪个 AI 更好用?
  • 哪个编辑器更强大?
  • 哪个框架更流行?

关键是启动自己的编程飞轮

不要纠结工具,而是:

  1. 开始囤积可运行代码
  2. 尝试组合创造
  3. 用 AI 理解 AI
  4. 重视测试质量

当别人还在选择工具时,你的编程飞轮已经开始转动。


📝 实践建议

立即行动

  1. 建立代码库

    • 分类整理你的代码
    • 确保可运行
    • 添加说明文档
  2. 尝试组合

    • 找到两个功能
    • 让 AI 组合
    • 验证结果
  3. 用 AI 理解代码

    • 让 AI 解释复杂逻辑
    • 生成可视化
    • 创建代码走读文档
  4. 测试优先

    • 先写测试
    • 再让 AI 写代码
    • 运行测试验证

长期习惯

  • 每次完成功能,整理为可复用代码
  • 遇到问题,先考虑能否组合已有代码
  • 定期用 AI 审查和理解代码库
  • 保持测试覆盖,确保质量

标签: #AI开发 #编程范式 #读书笔记