文章摘要
文章总结了10条关于智能编码代理的经验教训,指出前沿模型在编码方面表现出色,远超其他任务。作者认为与编码代理合作既令人振奋又充满奇特性,这些经验法则适用于各类编码代理,旨在为初学者提供通用指导,并随着模型发展保持长期价值。
文章总结
当代码变得廉价时,我们该怎么做?

最近,这个博客发表了许多关于自主编码(agentic coding)的文章。前沿模型如今在编码方面表现得非常出色,远胜于其他任务。使用自主代理进行编码就像是对未来的一次预览,一个可以探索代理能力极限的试验场。这既令人振奋,又充满成就感,同时也非常奇特。
我一直在整理一份关于自主编码的技巧清单:这些指导原则或规则适用于刚开始使用Codex、Claude Code、Pi或其他任何代理的人。理想情况下,每条建议都是通用的,适用于任何自主编程场景。同时,我也在寻找那些随着模型和工具改进而依然适用的持久经验。
以下是我的当前清单:《自主编码的10条经验》。10是一个不错的整数,是时候分享这些内容了。
需要说明的是:我只是对这些指导原则进行了提炼和整理。正如Kshetrajna Raghavan今天对我说的:“我们所有人都在总结相似的经验,这太不可思议了。”
(如果你认为我遗漏了什么,请联系我!)
自主编码的10条经验
- 通过实现来学习。虽然规范驱动开发(Spec-Driven Development)可以走得很远,但编写代码的过程会暴露你未曾考虑的问题,并让你的规范更加完善。当代码变得廉价时,通过实现来学习。
- 频繁重构。尽早且频繁地实现代码以获取更多知识。尝试疯狂的思想实验,看看某个功能能走多远。当然,你需要迭代和积累成果,但廉价的代码意味着你可以以前所未有的方式探索和重新发明。
- 投资端到端测试。当我们可以廉价地重构代码时,应该花时间编写测试来衡量产品的功能,而不是实现方式。我们需要行为契约,以便在重建和重新实现时保持自由。
- 记录意图。测试描述了目标,代码实现了方法,但两者都没有捕捉到“为什么”。你的意图驱动了决策,将其与代码一起保存,可以帮助你和代理在一致的方向上积累这些决策。
- 保持规范同步。随着代码和测试的推进,及时更新规范(包含目标和计划的Markdown文件)。如果将规范视为工作开始前冻结的产物,你将无法捕捉实现过程中的学习成果。保持规范的最新状态,让它持续为你和代理的决策提供信息,并使频繁重构更容易。
- 寻找困难的部分。在一个项目上工作足够长时间后,事情会变得不再容易。你会快速完成样板工作和显而易见的设计决策,然后开始面对棘手的问题:直观设计、性能、安全性、健壮性和系统架构。任何人都能轻松应对简单的事情,真正的价值在于困难的部分。找到它们并深入挖掘。
- 自动化所有简单的事情。为了在困难的部分投入更多时间,尽量减少在简单事情上的时间消耗。将学习成果提炼为技能,构建循环,自动化代码审查,并让工具为你积累成果。但要注意:不要陷入“神秘屋”陷阱。
- 培养你的品味。当代码快速生成而反馈滞后时,唯一能跟上节奏的反馈来源是你自己。你越了解你的领域、用户和他们的问题,就越能在不频繁检查的情况下走得更远。
- 代理放大经验。有经验的开发者常常低估他们在提示中注入的直觉:正确的术语、框架和细节水平。如果你熟悉技术栈,可以在实现和调试过程中节省大量时间,减少代理不必要的探索。将技术专长与出色的品味结合起来,你将获得无可比拟的优势。
- 代码廉价,但维护、支持和安全并非如此。自主代理生成的代码“像小狗一样免费”,但支持和安全并不廉价。快速构建的同时,务必注意你将承担的维护成本。
评论总结
以下是评论内容的总结,平衡呈现不同观点:
AI编码的成本问题
- 警告后期成本可能激增:"Realize it's going to be 10-100x more expensive once you have no way back?" (boesboes)
- 认为当前定价不真实:"at current completely unrealistic AI pricing...does not make code cheap" (lionkor)
生产力工具评价
- 推荐具体工具:"get-shit-done tool...useful for forcing me to properly plan" (schnitzelstoat)
- 效率对比:"slower than when I was just using Claude directly" (schnitzelstoat)
就业市场影响
- 印度初级开发者困境:"Ai has reduced offshoring...difficult to even land internships" (faangguyindia)
- 岗位类型影响:"Most affected areas are sysadmin, devops, and frontend" (faangguyindia)
代码质量争议
- 担忧质量下降:"They'll turn a code base into a ball of mud very quickly" (noelwelsh)
- 相反观点:"The floor has been raised significantly as to what bad code can even look like" (spicyusername)
自由软件观点
- 质疑"廉价"新说法:"code can't be cheaper than free!...since the early 80s" (utopiah)
- 维护成本警示:"Every line of code is a cost, is a maintenance burden" (lionkor)
工程本质讨论
- 强调核心难点:"the specification as the difficult bit" (pjc50)
- 工程持续性:"Engineering is hard. It's always going to be hard" (lionkor)
开发策略建议
- 原型开发优势:"create a lot more prototypes...perform usability tests" (melvinroest)
- 模式选择:"Stick to patterns which were painful before" (azyc)
行业责任争议
- 要求企业担责:"The LLM industry should go and find solutions for the problems they created" (hansmayer)
- 质疑商业动机:"Guy works for...Amazon, Microsoft etc. being sponsors" (asG1298)
关键分歧点集中在: - AI编码是降低还是转移成本 - 代码质量是提升还是恶化 - 对就业市场的实际影响 - 工具使用的最佳实践
代表性引用: "Every line of code is a cost, is a maintenance burden" (lionkor) "The floor has been raised significantly as to what bad code can even look like" (spicyusername)