Workflow
敏捷开发
icon
搜索文档
完全相信 AI 代码的 Uncle Bob,坦诚这条路还没走通
AI前线· 2026-08-26 17:21
AI代码质量管控框架的演进与争议 - Uncle Bob放弃对AI代码逐行人工评审,转而搭建基于指标与约束条件的管控框架,引发工程师群体激烈争论[2] - Grady Booch公开反对,认为测试覆盖率和复杂度指标无法发现安全漏洞、无效死代码或性能逻辑拆分问题,强调“信任,但要核验”[2] - Uncle Bob为AI智能体设置强约束体系:单元测试、Gherkin验收测试、QA测试流程、圈复杂度阈值、模块大小限制、依赖结构分析、变异测试及测试覆盖率要求[3] - 变异测试通过系统性改动源代码检验测试用例能否捕获缺陷,严谨程度超过多数工程团队的人工评审流程,但需前期投入巨大成本建立工程纪律[4] - Uncle Bob透露AI全权负责代码编写,他专注质量管控,模式运行顺利,但架构设计全自动化尚未取得理想效果,架构与模块依赖管控仍需人类主导[4] - 他建议放弃瀑布式重度前置规划,采用敏捷小迭代:做完一小轮迭代后人工复盘重构架构,再进入下一轮,可运行系统与自动化检测标准才是权威需求[4] AI代码质量管控的底层逻辑与调整 - AI智能体短期记忆能力远超人类,能处理更复杂代码逻辑,Uncle Bob将CRAP评分阈值从人类开发的4调整到AI开发的6,后续可能放宽到8[43][44] - 测试驱动开发适配人类开发者,但不适合强行约束AI智能体,AI最终会回归“完成函数开发再补充测试用例”的模式[44] - 人类编程价值理念依然通用,但开发行为规范与操作阈值需针对AI全面调整,不能直接照搬[44] - 自动化检测工具规则固定、执行确定性强,不会被上下文窗口的“中间信息丢失”机制影响,而提示词过长会导致大部分规则被模型无视[29] - 使用AI智能体的核心技巧是精简初始提示词,只保留核心规则,剩余规范约束依靠后置自动化工具落地[29] 多智能体协作体系与效率 - Uncle Bob搭建多智能体协作体系:需求解析智能体将需求转化为Gherkin验收测试用例和QA测试流程,编码智能体开发业务代码,代码清理智能体运行CRAP检测,代码加固智能体执行变异测试,QA测试智能体自动化系统测试[33][34] - 多智能体精细化分工两大核心优势:支持并行工作,普通笔记本电脑可同时运行三个以上编码智能体;精准控制上下文窗口,缓解“中间信息丢失”问题[33] - 采用“即用即毁”模式,智能体完成单次任务后直接销毁,下一轮任务启用全新智能体,保证上下文环境干净无冗余[33] - 多智能体闭环体系约一小时完成原本单个智能体五分钟的工作,但对比人类半天开发时长,效率提升4-5倍,且代码质量远高于人工开发水平[34] - 即便叠加大量检测规则与约束条件,AI开发效率依然是人类的2-4倍,优势明显[30] 架构设计与模块规划 - Uncle Bob人工负责架构设计,让AI开发架构可视化工具实时生成UML结构图,实现全层级架构可视化管控[37] - 搭建确定性检测工具,明确定义模块间依赖规则并写入固定配置文件,AI绝对不能违规,专属检测程序校验架构合规性[38] - 优质模块化结构核心价值:边界清晰、接口规范、分工明确的模块,人类开发者与AI智能体都能轻松理解精准把控[40] - 大模型会重点关注代码结构和接口定义,依托规范模块接口可无需解析底层源码直接完成开发迭代[40] - AI通过读取测试用例理解系统功能,代码结构与模块设计越规范,AI对业务理解越精准,开发质量越高[41] 前置规划与敏捷迭代 - Uncle Bob彻底放弃重度前置规划,拥抱敏捷开发思路:让AI先完成单个小型需求迭代,结束后人工复盘架构优化结构,再推进下一轮迭代[46] - 编程修改成本已无限趋近于零,无需耗费大量精力做重度前置规划,快速迭代持续优化才是最优解[48] - 纯粹的需求驱动开发模式不适配AI时代,最优解依然是敏捷迭代:小步快跑、快速反馈、迭代优化、实时重构[48] - 最终落地的可运行系统与可通过的检测标准才是真正的需求,不建议直接下载使用现成工具,应让AI读取工具逻辑自主复刻适配专属工具[49] 新人培养与底层基础 - 新人必须亲自手写代码,完整经历编码、调试、排错全过程,不能全程只做AI提示词工程师[5] - 新人应把自己当作“人类智能体”,接受自动化检测约束,积累实战经验,再进阶做战略架构[5] - 通过阅读经典软件工程书籍获取架构与战略思维,弥补AI时代架构反馈周期缩短但缺少历史踩坑经验的短板[5] - 底层基础价值从未改变,鼓吹基础无用的人终究会付出代价,AI虽然强大但依然会撞上复杂度天花板[54] - 新手必须从二进制、汇编、C语言等底层知识学起,再到高级语言与AI工具协作,逐层搭建认知,最终具备管控AI做战略编程的能力[52]