AI需要更多的工程纪律,而不是更少
本文讨论了AI生成代码能力的快速提升如何颠覆了软件工程的经济学,强调代码变得廉价和可丢弃,而真正的产品是共享理解或生产。作者借鉴了Chad Fowler的“凤凰架构”概念,主张将代码视为缓存而非资产,并呼吁加强评估和理解能力。文章还指出,工程纪律比以往任何时候都更重要,因为AI带来的变化要求重新思考代码审查、架构设计等实践。
本文作者Charity Majors回应了读者对之前AI相关文章的反馈,深入探讨了AI对软件工程的影响。她指出,2025年AI代码生成能力发生了根本性转变,尤其是Opus 4.5和代理性框架的涌现,使得AI能够生成与中级工程师水平相当的代码,且速度更快、成本更低。这一变化彻底颠覆了代码生产的经济学:代码从昂贵、需要精心维护的资产,变成了可快速生成、可丢弃的消费品。
Majors强调,尽管AI生成代码的能力惊人,但这并不意味着可以放弃工程纪律。相反,工程纪律变得更加重要。她引用Chad Fowler的“凤凰架构”概念,认为代码应被视为“理解的材料化视图”——当代码易于生成时,它就不再是永久资产,而更像是一个缓存,只有在当前时才有用,过时就应丢弃。这种视角要求工程师更关注系统的理解、评估和验证,而不是仅仅编写代码。
文章还回顾了从手动管理服务器到不可变基础设施的转变,指出这一历史类比有助于理解当前AI对软件工程的影响。过去,服务器被视为宠物,需要精心维护;而现在,基础设施被视为 cattle,可以随时替换。类似地,AI使得代码可以被快速替换,但前提是我们必须理解代码背后的行为、约束和不变性。Majors认为,这要求工程师将更多的精力投入到架构设计、评估和测试中,而不是仅仅依赖代码本身。
作者进一步阐述了“删除测试”的概念:试想删除整个实现,大多数工程师会感到恐惧,因为这暴露了我们对其行为、失败、不变量和正确性的无知。这些不是代码问题,而是评估问题。当代码是唯一承载知识的地方时,它变得珍贵。但在AI时代,当重写变得便宜时,代码就不再是资产,而是缓存的实现理解。这一转变要求我们加强工程纪律,特别是在评估方面。
最后,作者呼吁不要重复2025年的错误:当时许多人对AI代码生成持怀疑态度,但事实证明怀疑是错误的。面对AI的快速发展,工程师应保持开放心态,同时加强工程纪律,以确保在AI时代依然能够构建可靠、可维护的软件系统。她还提到,Honeycomb公司去年八月就发布了AI指令,积极拥抱这一变革,并强调了基础设施即代码和不可变基础设施的经验教训在AI时代的适用性。