面试官问:AI 写的代码出了 Bug 谁负责?Codex 时代程序员的 3 条生存法则

面试官看着你的简历,问了一个问题:
“你用 AI 写代码吗?”
你点头。2026 年了,谁不用呢。
“那如果 AI 写的代码出了 Bug,上了生产环境,导致用户数据泄露——谁负责?”
你愣住了。
这不是一个假设性的问题。这是 2026 年真实发生在面试桌上的对话。而且,它正在成为衡量一个程序员是否”靠谱”的分水岭。
会用 AI 写代码的人很多。知道怎么为 AI 写的代码负责的人,很少。
今天聊聊这个越来越避不开的话题:当 AI 帮你写了大部分代码,你的”程序员自我修养”应该是什么样的。
一个真实的翻车案例
2025 年底,一家 SaaS 公司上线了一个新功能。开发过程中,工程师使用 Codex 生成了大量后端代码,包括一个用户权限检查的中间件。
代码能跑。测试通过。PR 审查也过了——审查的人也用 AI 辅助审查的。
上线两周后,安全团队发现了一个漏洞:那个权限中间件在某个边界条件下,会让未授权用户访问到管理员接口。原因是 AI 生成的代码在处理 JWT token 过期场景时,默认放行了请求,而不是拒绝。
Bug 不复杂。逻辑甚至看起来”合理”。但它在安全上是致命的。
事后复盘时,团队争论了一个问题:这个 Bug 到底怪谁?
写代码的 AI?提需求的工程师?没审查出来的 Reviewer?还是决定上线的技术负责人?
答案其实很明确——怪所有人,但首先怪写下 prompt、点了 accept 的那个人。
AI 不能负责,这是个事实
这一点需要先说清楚。
AI 不是法律主体。它不能承担责任。OpenAI 的用户协议、Anthropic 的用户协议、GitHub 的 Copilot 条款,都明确写着同一件事:AI 生成的代码,使用者对其后果负全责。
这不是 AI 公司在推卸责任。这是一个逻辑问题:AI 没有意图,没有判断力,没有道德责任。它只是一个统计模型,根据你的输入生成最可能的输出。
打个比方:你用计算器算出一个结果,做了一个错误的商业决策。你能怪计算器吗?
Codex 是一个超级强大的计算器。但按”等号”的人,是你。
Gartner 的一份 2026 年预测报告指出:到 2027 年,AI 相关的软件缺陷数量将增长 25 倍。75% 的技术负责人承认,他们正面临 AI 引入的技术债。
问题不是 AI 写的代码质量差——很多时候它写得比人好。问题是:当没人真正理解那些代码的时候,出了 Bug 就没人能快速定位和修复。
程序员的角色变了,但责任没变
美国劳工统计局(BLS)的数据显示,过去两年,”计算机程序员”这个职位减少了 27%。与此同时,”软件开发工程师”的数量还在增长。
这说明什么?**”写代码”这个动作的价值在下降,但”对代码负责”这个角色的价值在上升。**
以前的程序员:理解需求 → 设计方案 → 写代码 → 调试 → 测试 → 部署 → 维护。
现在的程序员:理解需求 → 设计方案 → 指导 AI 写代码 → 审查 AI 的输出 → 调试 → 测试 → 部署 → 维护。
你注意到了吗?流程里多了两步——“指导”和”审查”。而这两步,恰恰是你不能外包给 AI 的。
Claude Code 的创造者 Boris Cherny 说过一句引发争议的话:”编程实际上已经被解决了。” 但他紧接着说的下一句很多人忽略了:”软件工程师的头衔会消失,取而代之的是’构建者’。”
“构建者”的核心能力不是写代码,而是对产出负责。
生存法则一:你审查的每一行代码,都是你的代码
这是 Codex 时代最重要的心态转变。
很多人把 AI 生成的代码当成”别人的代码”——它写的,跟我没关系,我只是用了一下。
不对。你点了 accept 的那一刻,它就是你的代码。
你不会因为”这段代码是实习生写的”就免除你的审查责任。同样,你不会因为”这段代码是 AI 写的”就免除你的审查责任。
具体怎么做?
建立审查清单
不要靠感觉审查。给自己一个标准化的检查流程:
1 | # AI 代码审查清单 |
最后一项是最关键的。如果你不能解释一段代码为什么要这样写,你就不应该让它上线。
用 AI 交叉审查
一个聪明的做法:用一个 AI 审查另一个 AI 的代码。
社区里有人用 Claude 审查 Codex 的输出,反过来也一样。两个模型的偏差不同,交叉审查能捕获更多问题。
在 AGENTS.md 里创建一个专门的安全审查子 Agent:
1 | # .codex/agents/security-reviewer.toml |
但 AI 交叉审查是补充,不是替代。最终的判断权和责任,在你手上。
生存法则二:写代码的能力可以退化,读代码的能力不能
这是一个反直觉的观点。
很多人担心:如果 AI 帮我写了大部分代码,我的编程能力会不会退化?
会的。而且已经在发生了。
一位 Google 的高级工程师在社区分享过:他发现自己离开 AI 工具后,写代码的速度明显变慢了。以前能信手拈来的 API 调用方式,现在需要查文档。
写代码的能力退化,是可以接受的。 就像你有了计算器之后,心算能力退化了。这不影响你做好工作。
但——读代码的能力不能退化。
读代码 = 理解代码 = 判断代码质量 = 发现潜在问题。
这是 AI 时代程序员的核心技能。不是你能多快地写出一个函数,而是你能多准确地判断一段代码是否可靠。
怎么保持读代码的能力
第一,定期做”无 AI 代码审查”。 关掉所有 AI 辅助工具,手动审查一个 PR。强迫自己逐行理解,写出审查意见。
第二,读开源项目的核心代码。 不是浏览,是深读。选一个你感兴趣的项目,花一个下午读它最核心的 500 行代码。理解设计决策背后的 why。
第三,写技术方案而不是代码。 当你面对一个新需求,先用文字写出你的实现方案——数据结构、算法选择、接口设计、错误处理策略——然后再让 AI 去实现。这个过程迫使你思考,而不是直接让 AI 替你思考。
METR(一家独立 AI 评估机构)2026 年初的研究发现了一个有意思的现象:开发者使用 AI 后,改变了他们尝试做的事情的类型。 他们倾向于把”实现”交给 AI,自己去做更多”设计”和”决策”。
这恰恰是正确的方向。
生存法则三:建立”AI 代码治理”体系
这一条不只是给个人的建议,更是给团队和技术 Leader 的。
2026 年的很多代码质量问题,不是因为 AI 写得不好,而是因为没有人管 AI 怎么用。
每个人用 AI 的方式不同。有人仔细审查每一行,有人一路 accept 到底。有人写详细的 AGENTS.md,有人连 prompt 都懒得好好写。
结果就是:同一个项目里,不同模块的代码质量参差不齐。有些模块干净优雅,有些模块里埋着定时炸弹。
团队层面的最佳实践
1. 制定 AI 编码规范。 不是限制使用 AI,而是规范怎么使用。比如:
- 安全相关代码必须经过人工逐行审查
- AI 生成的代码必须有对应的单元测试
- 所有使用 AI 生成的核心逻辑,必须在 PR 描述里标注并说明审查重点
2. 分层信任。 不是所有代码都需要同等程度的审查。把代码分成三类:
- 🔴 高风险(认证、支付、数据处理):必须人工逐行审查 + 安全扫描
- 🟡 中风险(业务逻辑、API 接口):AI 交叉审查 + 人工抽查
- 🟢 低风险(UI、工具函数、测试代码):AI 审查即可
3. 建立 AI 代码的可追溯性。 当一个 Bug 出现时,你需要能快速回答:这段代码是谁在什么上下文下让 AI 生成的?原始 prompt 是什么?审查时是否覆盖了出问题的场景?
有些团队开始在 Git commit message 里标注 AI 使用情况:
1 | feat: add user permission middleware |
这不是强制的,但当线上出了问题需要回溯时,你会感谢有这些信息。
面试官真正在问什么
回到开头那个面试问题。
面试官问”AI 写的代码出 Bug 谁负责”,他真正想知道的不是你对法律责任的理解。他想知道的是:
你是那种”用 AI 快速出活然后甩锅”的人,还是那种”用 AI 提效但对产出负责”的人。
好的回答大概是这样的:
“AI 是工具,我是使用者,责任在我。我的做法是:用 AI 加速编码,但对每一行进入代码库的代码承担审查责任。特别是安全和核心业务逻辑,我会手动审查、补充边界测试、用交叉模型做安全扫描。如果出了 Bug,我会负责定位和修复——不管那行代码最初是我手写的还是 AI 生成的。”
这个回答的核心不是推卸或揽责。是展示你有成熟的工作流程和清晰的质量意识。
“程序员”这个词正在被重新定义
2026 年,一个有意思的趋势是:很多公司的职位名称正在从”Software Engineer”变成”Builder”或”Product Engineer”。
这不是文字游戏。这反映了一个根本性的变化:程序员的核心价值,正在从”能写代码”转向”能交付可靠的产品”。
“能写代码”在 AI 时代贬值了。任何人打开 Codex,输入一段话,都能得到一段代码。
“能交付可靠的产品”在 AI 时代增值了。因为 AI 生成的代码总量爆炸式增长,但能对这些代码的质量、安全、可维护性负责的人——这种人反而更稀缺了。
一个数据佐证:活跃开发者 46% 的代码由 AI 生成,2000 万开发者每天使用 AI 编码助手。代码在以前所未有的速度被生产出来。但与此同时,线上 Bug 的数量也在增长。
代码越多,需要对代码负责的人就越重要。
写在最后
AI 不会替你承担责任。你的 AI 工具再强,出了事,站在会议室里复盘的,是你。
但这不是坏事。
恰恰相反——能为产出负责的能力,才是 AI 时代程序员最值钱的能力。
因为 AI 拉平了”写代码”的门槛。以前你的优势是”我会写代码,你不会”。现在每个人都”会写代码”——通过 AI。
那什么成了新的优势?
你能判断代码的质量。你能发现潜在的风险。你能在出问题时快速定位和修复。你能设计可靠的系统,而不只是让代码”能跑”。
简单说:你的自我修养,不再是”写代码”的修养,而是”对代码负责”的修养。
这条路更难,但也更值钱。
下次面试有人问你”AI 写的代码出 Bug 谁负责”,你会怎么回答?你有没有自己的 AI 代码审查流程?你觉得 AI 时代程序员最应该保持的能力是什么?评论区聊聊——你的经验,可能正好是一个刚入行的新人急需的指引。