更多代码复习=更多臭味代码? 笔记

更多代码复习=更多臭味代码?

六十八条评审意见使函数代码量从 28 行增长至 42 行,其中 62 处修复均针对真实问题。问题不在于评审者的准确性,而在于项目缺乏针对评审意见的决策机制。AgentCoop 项目是一个 AI 代理系统,采用 OpenAI 的 Codex 进行自动化代码评审,并严格执行“必须回应所有意见”的规则。这往往导致在不考虑更广泛影响的情况下盲目修复意见。由此浮现出四个关键问题:因微小且准确的修复导致范围蔓延;对标记为“安全”或“可用性”的问题无论实际影响如何均予以紧急处理;权衡不当,为罕见甚至不存在的缺陷引入永久性的代码复杂度;以及仅按意见所指位置进行修复,而非解决根本原因。曾有一项关于升级会破坏配置文件的关键问题被初步升级处理,但最终仅通过文档中的一段文字予以解决。实际用户影响微乎其微,仅需几分钟的配置调整,而非系统级中断。随后,团队制定了一套评估评审意见的机制,超越直觉判断。首先通过三个快速问题判断修复是否廉价(少于十行代码)、问题是否真正可能发生、以及失败是否静默(若静默则至少需记录日志)。廉价的修复立即实施,不可达的代码路径予以删除,静默失败则优先处理或使其显性化。关于“廉价”的关键注意事项是:考虑最廉价且有效的修复方案,而非 necessarily 采纳评审者的建议。对于通过第一步的评审意见,需在数小时内进行定量评估。这包括估算缺陷每次发生造成的成本、年度发生频率、用户可接受的痛苦程度(通过乘数调整)、修复的构建时间,以及其永久性的年度维护成本。利用这些数值计算年度节省额及修复的投资回收期。若净年度节省为零或为负,则判定该修复不值得实施。开篇示例中的配置解析问题经分析显示净年度节省为负,证明本不应修复。估算事件频率需基于具体且有证据的组成部分进行构建,而非凭空猜测。竞态条件亦通过考量触发操作与脆弱窗口进行评估,优先处理事件被有意对齐的场景,而非纯粹巧合。