跳到主要内容

31 篇博文 含有标签「code-review」

查看所有标签

AI 作为 CI/CD 门禁:智能体可以和无法可靠拦截的内容

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个 AI 审查器拦截了一个合并(merge)。一名开发者盯着失败的检查,点击“查看详情”,扫视了三段样板文字,然后在没有阅读实际发现的情况下提交了一个“强制推送异常”(force-push exception)。在不到一周的时间里,团队中的每一位工程师都在潜意识里认为 AI 门禁只是背景噪音——是需要被忽略的,而不是需要去参与处理的。

这是大多数构建 AI CI/CD 门禁的团队实际交付的结果,即便底层模型在技术上是有能力的。问题不在于 AI 是否能审查代码,而在于你要求它拦截什么,以及你期望在它拦截时发生什么。

调试的倒退:AI 生成的代码如何改变故障响应成本曲线

· 阅读需 10 分钟
Tian Pan
Software Engineer

2026 年 3 月,一次由 AI 辅助的代码变更导致一家大型零售商损失了 630 万个订单,北美订单量暴跌 99% —— 这场长达六小时的生产事故追溯到一次未经适当审查就部署的变更。这并非什么新颖的攻击,也没有什么离奇的故障模式。系统只是执行了 AI 告诉它的指令,而在数百万客户遇到错误之前,没有任何值班人员拥有足以理解其错误原因的心理模型(mental model)。

这就是“调试退化”(debugging regression)。AI 生成代码带来的生产力提升是前置且在仪表盘上清晰可见的。而成本则是后置的,直到凌晨 3 点告警把你叫醒时,它才显露真身。

大规模 AI 代码审查:当你的机器人带来的工作量超过它节省的工作量时

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数采用 AI 代码审查器的团队都会经历同样的阶段:最初的兴奋,伴随着大量看似有用的标注问题,然后逐渐演变成完全忽视该机器人。几个月内,工程师们已经形成了一种在不阅读 AI 评论的情况下直接将其关闭的肌肉记忆。工具仍在运行,评论仍在出现,但没有人再根据它们采取行动了。

这不是工具问题,而是衡量标准的问题。团队在部署 AI 代码审查时,从未定义过什么是“净收益”——如果没有这个基准线,告警疲劳最终会胜出。

当每个人都拥有 AI 编程助手:那些无人提醒你的团队动态

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个由十二名工程师组成的团队热情地采用了 AI 编程工具。六个月后,每位工程师合并的 Pull Request (PR) 数量几乎翻了一番。工程经理为此欢欣鼓舞。随后,值班轮换开始频繁报警。调试过程的持续时间延长了一倍。没有人能解释为什么某个特定模块要采用那样的结构。编写它的工程师诚实地回答道:“我不知道 —— 这大部分是 AI 生成的,看起来没问题。”

这种情景正在各地的公司上演。个人生产力的故事是真实的:开发人员更快地完成任务,编写更多的测试,更高效地清理积压工作。但团队层面的情况则更为复杂,大多数组织尚未为此做好准备。

提示词差异审查作为一种规范:审查者真正需要问的问题

· 阅读需 12 分钟
Tian Pan
Software Engineer

上个季度,一家中型AI初创公司的系统提示词中落地了一个单行变更。这个差异看起来无害:一位工程师收紧了关于响应长度的指令。审查者在两分钟内批准了它,就像批准一个变量重命名一样。48小时内,支持工单激增。模型开始在复杂查询的句子中间截断答案,而旧措辞几个月来默默处理的边界情况现在都失败了。原来的指令不仅控制着长度——它隐式地锚定了模型关于何时一个主题已经完成的判断。没有人捕捉到这一点,没有人去寻找它。

这就是当今提示词审查的核心问题:我们正在将代码审查的直觉应用于一个这些直觉大多数是错误的媒介。代码审查之所以有效,是因为被审查的工件是确定性的,语义可以从语法中恢复。提示词两者都不是。它的含义分布在模型的权重、训练数据以及推理时运行的随机采样中。你在屏幕上看到的差异只是你正在批准的变更的一小部分。

AI 代码审查陷阱:为什么更快的审查正在让你的代码库变得更糟

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的团队比以往任何时候都能发布更多代码。PR 速度提升了,周期时间缩短了,积压也在减少。在管理者看得到的每一块仪表板上,一切都看起来很好。然而,每个 PR 对应的事故数量正悄悄地以每年 23.5% 的速度攀升。

这就是 AI 代码审查的悖论。AI 工具让工程师写代码更快,审查代码也更快——但最关键的缺陷正以比以前更高的比率漏过审查。这个悖论的两面相互叠加,而大多数团队并没有在衡量正确的指标来察觉这一点。

你的代码审查流程正在针对错误的失败模式进行优化

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的代码审查清单是为一个以分号放错位置或忘记空值检查为主要缺陷的世界而设计的。那个世界已经不存在了。AI 生成的代码很少有拼写错误,几乎总能编译通过。但它正在以你的审查流程从未设计来捕获的方式,悄悄地侵蚀你的代码库。

对数十万个 GitHub Pull Request 的分析表明,AI 生成的代码产生的问题是人类编写代码的 1.7 倍——每个 PR 大约 10.8 个问题,而人类为 6.5 个。但缺陷的分布发生了根本性转变:逻辑错误增加了 75%,性能问题出现的频率几乎是之前的 8 倍,安全漏洞多了 1.5 到 2 倍。最重要的缺陷恰恰是你传统审查机制最容易遗漏的。