AI 编程时代的软件工程原则
AI 编程工具越强,软件工程原则反而越重要。因为 AI 放大的不是单纯的“好代码”,而是人的工作方式。如果一个团队本来就有清晰边界、测试体系和 review 文化,Agent 会放大效率;如果一个团队本来就靠口头约定、临时修补和大 PR 硬推,Agent 会放大混乱。
第一条原则是:人负责架构,Agent 负责执行。架构不是画几张图,而是决定模块边界、依赖方向、状态归属和错误传播方式。这些决定一旦错了,后面再多代码都只是在错误结构上加速堆积。Agent 可以给建议,但最终判断必须由理解业务和系统演化的人承担。
第二条原则是:可验证比可生成更重要。AI 让生成代码变得很便宜,但验证仍然昂贵。编译、类型、测试、lint、日志、trace、review evidence、线上反馈,都是 AI 时代更重要的资产。没有验证,代码生成越快,风险扩散越快。
第三条原则是:上下文是工程资产。很多团队以为 AI 效果不好是 prompt 不够好,其实是上下文没有被工程化。业务规则散在聊天里,架构知识藏在人脑里,历史决策没有记录,模块边界不清楚,Agent 自然只能靠猜。把上下文变成文档、测试、类型、schema、接口契约和目录结构,才是长期有效的 AI 工程化。
第四条原则是:按风险决定自动化程度。不是所有任务都需要同样的人工介入。低风险、可回滚、边界清晰的任务可以高度自动化;高风险、强一致性、安全敏感的任务必须保持人工审查。成熟的 AI 工作流不是“全自动”或“全手动”,而是能根据风险调节自主程度。
第五条原则是:保持代码可理解。Agent 生成代码很容易出现“功能能跑,但没人懂”的状态。长期来看,代码的可理解性就是生产力。函数、模块、测试、命名、错误处理和抽象层级,都应该服务于后续维护,而不是服务于一次生成的完整感。
第六条原则是:把 Agent 当同事,而不是神谕。它可以很快,也可以很错;它可以帮你发现遗漏,也会制造幻觉。健康的协作方式是让它提出方案、执行局部、接受检查,而不是把最终判断交出去。
Mario 的 Pi 工作流之所以有启发,是因为它没有试图把软件工程抹掉,而是把软件工程变得更显性:issue 要复现,分析要审查,diff 要看,检查要跑,changelog 要写,commit 要可追溯,复杂度要控制。
如果用一句话总结 AI 编程时代的软件工程原则:AI 不应该让软件开发变成更快的黑盒,而应该迫使我们把上下文、边界、验证和责任讲得更清楚。
相关:AI Coding Agent 的两派:全自动黑箱 vs 人类主导、如何让 Agent 不把代码库写烂、AI 时代我如何理解软件交付流程