Hacker News 中文摘要

RSS订阅

智能编程的启示:代码廉价时我们该何去何从? -- Lessons for Agentic Coding: What should we do when code is cheap?

文章摘要

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

文章总结

当代码变得廉价时,我们该怎么做?

图片1

最近,这个博客发表了许多关于自主编码(agentic coding)的文章。前沿模型如今在编码方面表现得非常出色,远胜于其他任务。使用自主代理进行编码就像是对未来的一次预览,一个可以探索代理能力极限的试验场。这既令人振奋,又充满成就感,同时也非常奇特。

我一直在整理一份关于自主编码的技巧清单:这些指导原则或规则适用于刚开始使用Codex、Claude Code、Pi或其他任何代理的人。理想情况下,每条建议都是通用的,适用于任何自主编程场景。同时,我也在寻找那些随着模型和工具改进而依然适用的持久经验。

以下是我的当前清单:《自主编码的10条经验》。10是一个不错的整数,是时候分享这些内容了。

需要说明的是:我只是对这些指导原则进行了提炼和整理。正如Kshetrajna Raghavan今天对我说的:“我们所有人都在总结相似的经验,这太不可思议了。”

(如果你认为我遗漏了什么,请联系我!)


自主编码的10条经验

  1. 通过实现来学习。虽然规范驱动开发(Spec-Driven Development)可以走得很远,但编写代码的过程会暴露你未曾考虑的问题,并让你的规范更加完善。当代码变得廉价时,通过实现来学习。
  2. 频繁重构。尽早且频繁地实现代码以获取更多知识。尝试疯狂的思想实验,看看某个功能能走多远。当然,你需要迭代和积累成果,但廉价的代码意味着你可以以前所未有的方式探索和重新发明。
  3. 投资端到端测试。当我们可以廉价地重构代码时,应该花时间编写测试来衡量产品的功能,而不是实现方式。我们需要行为契约,以便在重建和重新实现时保持自由。
  4. 记录意图。测试描述了目标,代码实现了方法,但两者都没有捕捉到“为什么”。你的意图驱动了决策,将其与代码一起保存,可以帮助你和代理在一致的方向上积累这些决策。
  5. 保持规范同步。随着代码和测试的推进,及时更新规范(包含目标和计划的Markdown文件)。如果将规范视为工作开始前冻结的产物,你将无法捕捉实现过程中的学习成果。保持规范的最新状态,让它持续为你和代理的决策提供信息,并使频繁重构更容易。
  6. 寻找困难的部分。在一个项目上工作足够长时间后,事情会变得不再容易。你会快速完成样板工作和显而易见的设计决策,然后开始面对棘手的问题:直观设计、性能、安全性、健壮性和系统架构。任何人都能轻松应对简单的事情,真正的价值在于困难的部分。找到它们并深入挖掘。
  7. 自动化所有简单的事情。为了在困难的部分投入更多时间,尽量减少在简单事情上的时间消耗。将学习成果提炼为技能,构建循环,自动化代码审查,并让工具为你积累成果。但要注意:不要陷入“神秘屋”陷阱。
  8. 培养你的品味。当代码快速生成而反馈滞后时,唯一能跟上节奏的反馈来源是你自己。你越了解你的领域、用户和他们的问题,就越能在不频繁检查的情况下走得更远。
  9. 代理放大经验。有经验的开发者常常低估他们在提示中注入的直觉:正确的术语、框架和细节水平。如果你熟悉技术栈,可以在实现和调试过程中节省大量时间,减少代理不必要的探索。将技术专长与出色的品味结合起来,你将获得无可比拟的优势。
  10. 代码廉价,但维护、支持和安全并非如此。自主代理生成的代码“像小狗一样免费”,但支持和安全并不廉价。快速构建的同时,务必注意你将承担的维护成本。

评论总结

以下是评论内容的总结,平衡呈现不同观点:

  1. 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)
  2. 生产力工具评价

    • 推荐具体工具:"get-shit-done tool...useful for forcing me to properly plan" (schnitzelstoat)
    • 效率对比:"slower than when I was just using Claude directly" (schnitzelstoat)
  3. 就业市场影响

    • 印度初级开发者困境:"Ai has reduced offshoring...difficult to even land internships" (faangguyindia)
    • 岗位类型影响:"Most affected areas are sysadmin, devops, and frontend" (faangguyindia)
  4. 代码质量争议

    • 担忧质量下降:"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)
  5. 自由软件观点

    • 质疑"廉价"新说法:"code can't be cheaper than free!...since the early 80s" (utopiah)
    • 维护成本警示:"Every line of code is a cost, is a maintenance burden" (lionkor)
  6. 工程本质讨论

    • 强调核心难点:"the specification as the difficult bit" (pjc50)
    • 工程持续性:"Engineering is hard. It's always going to be hard" (lionkor)
  7. 开发策略建议

    • 原型开发优势:"create a lot more prototypes...perform usability tests" (melvinroest)
    • 模式选择:"Stick to patterns which were painful before" (azyc)
  8. 行业责任争议

    • 要求企业担责:"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)