AI 时代的软件设计原则
随着大语言模型和编程代理的发展,行业中出现了一种观点:只要写出需求规格说明(Spec),让模型生成代码即可;若出现问题只需修改规格并重新生成,无需关注具体代码实现,因为“代码已经变得极其廉价”。
这种“规格即代码”(Spec-to-Code)的假设在复杂工程中迅速遇到瓶颈。当开发者放弃对代码结构的控制时,演讲借用《程序员修炼之道》所描述的软件熵(Software Entropy)概念指出,混乱会加速累积:局部补丁堆叠、逻辑重复扩散,最终导致代码库迅速劣化。糟糕的代码库不仅不会因为 AI 而变好,反而会使编程代理在盘根错节的依赖中迷失。
AI 编程并没有让经典软件工程过时,反而放大了良好架构的价值。Matt Pocock 在 AI Engineer Europe 演讲中指出了 AI 辅助编程中的 5 种典型失效模式,并结合经典软件设计理论给出了对应的工程实践。
意图偏离:以对抗式提问建立“设计概念”
失效表现
开发者脑海中构想了功能雏形,但给出的提示词或粗粒度规格被模型理解为完全不同的实现方向;或者模型过早制定计划并生成大量非预期代码。
演讲理论依据
演讲借用 Frederick Brooks 在《设计之道》(The Design of Design)中的观点,指出多人或人机协作设计时,核心资产不是写在纸面或 Markdown 里的静态文字,而是流转于协作各方之间的设计概念(Design Concept)——即关于目标系统内在机理与边界的无形共识。