AI 写的代码出事故谁负责:12 道面试追问和答法

0 阅读8分钟

牛客上有个帖子,标题是「面试被问"AI生成代码出bug谁负责",我差点翻车」。面试官的原话是:"AI 生成的代码上线后出了 P0 级事故,责任怎么分?"答主脱口而出:"当然是谁提交的谁负责。"然后被三个追问按在地上摩擦。

这题不是个例。牛客另一篇帖子的说法更直接:会用 AI 写代码的人越来越多,面试反而更难筛了。原因一句话:AI 把"实现能力"的门槛拉平了,面试官要筛的东西换了。

现在筛的不是你能不能写出来,是 AI 写的东西出了事,你担不担得起。

我把最近公开面经里这类追问扒了一遍,凑出 12 道题。全部来自牛客、掘金、SegmentFault 上能查到的真实面经,每道都给翻车答法和答题骨架。文末有速查表。

面试官为什么突然盯上这个

以前的筛选题长这样:「手写一个快排」「说一下事件循环」。现在掘金和牛客的面试帖里,题目变成了「给你 30 分钟,用 Codex 现场写一个功能」「这段 AI 生成的代码有什么问题?」「说说你平时怎么用 AI 工具的,遇到过什么坑」。

变化的原因不复杂。当"写出来"不再稀缺,简历上人人都有几个 AI 做的项目,面试官面对的新问题是那篇牛客帖的原话:「大家看着都变强了,但真正能筛出来的难度反而上升了」。

拉平的只是实现。判断、验证、担责,这三件事 AI 替代不了,所以追问全往这三个方向打。

有个面试官的说法很形象:「你把 AI 当'打字机'还是当'初级实习生'?」——实习生的代码你至少会 review 一遍,打字机打出来的你直接就用。这个问题的潜台词是:你有没有把 AI 当成一个需要盯的队友。

答题的地基:把责任想成三层

「谁提交的谁负责」这句话本身没错,错在它是整道题的第一层,不是答案的全部。把责任摊开是三层,面试官的追问就是在逐层下钻:

**第一层,提交者兜底。**代码进主干是你点的合并按钮,事故的第一责任人就是提交者,这层没有争议空间。但只答到这层,下一个追问一定来:那 review 的人呢?

**第二层,review 验证。**上面那个牛客帖里,答主说提交者负责之后,面试官立刻追问:"你说的第二层,review 者标注'已验证',但如果他验证漏了呢?"这一问的考点是:验证的可信度来自方法,不来自签名。谁都能在 PR 上打一个"已验证"的标签,能说清楚"我验证了什么、没验证什么"的才是真验证。

**第三层,流程资产。**AI 代码出事之后,定责要靠证据链:当时的 prompt 和生成记录、测试覆盖了哪些路径、上线前的检查单有没有卡住这类代码。这层的价值是事后能回答"哪一层失守了",而不是只有"谁写的"。

所以「P0 事故责任怎么分」的完整骨架是:提交者兜底是底线,然后定位失守层——是 review 漏验、是测试盲区、还是流程没卡住——最后说证据链怎么留。面试官想听的是分层,不是一句甩锅话。

第一组:事故责任(4 道)

1. "AI 生成的代码上线后出了 P0 级事故,责任怎么分?"(牛客原题)

翻车答法就是上面那句"谁提交的谁负责"——不是错,是浅,面试官会判定你没想过这个问题的结构。

骨架:分层答。提交者兜底 → 定位失守层(review 漏验 / 测试盲区 / 流程没卡)→ 讲证据链。三句话说完,比一分钟的车轱辘话强。

2. "review 者标注'已验证',但如果他验证漏了呢?"(牛客追问原话)

这题在考"验证"两个字到底什么意思。

骨架:承认漏验永远可能发生,然后说怎么降低概率——验证动作要具体化:边界值过了没有、异常路径测了没有、和需求逐条对齐了没有。能报出这份清单的人,才可能被相信"已验证"。

3. "你有没有遇到过 AI 生成的代码出了问题,但 review 没发现的情况?"(牛客追问原话)

这题最大的坑是现场编案例。面试官手里可能就攒着几个真实例子,你编的故事细节对不上就当场翻车。

骨架:有就讲细节,没有就诚实说没有,然后把题接住——"所以我现在 review AI 代码会固定过一遍检查点",顺势给清单。诚实加方法,好过编一个漂亮故事。

4. "团队里 AI 代码占比越来越高,出了问题该谁兜?"(变形题)

考的是责任会不会被稀释。AI 写的代码多了,"大家都在用"不等于"出了事大家一起扛"。

骨架:责任不随占比稀释,反而要前移——提交门槛里加 AI 代码专项检查,自动验证覆盖越核心的链路,人工越要盯住。说制度设计,不说"看领导"。

第二组:能力证明(4 道)

5. "你把 AI 当'打字机'还是当'初级实习生'?"(SegmentFault 面经原话)

骨架:接实习生类比,然后给差异——实习生你给方案、你 review、你担责;打字机模式是直出不验。一句话立场:AI 是能力下限很高的实习生,但没有判断,判断在屏幕这边。

6. "你能不能判断 AI 写得对不对?"(SegmentFault 面经原话)

翻车答法:"能。"这个字出口就完了。

骨架:用动作回答。比如:先跑测试看行为,再对着需求逐条核验,关键路径自己读一遍逻辑。判断力只存在于具体的验证动作里。

7. "你简历上这个项目,为什么这么拆?"(牛客帖里的真伪分辨题)

原帖的例子:「你简历上这个 Agent 项目,为什么拆成三个子 Agent,而不是用一个 Agent 加几个工具调用搞定?」——真做过的人有取舍过程,让 AI 一把梭的人只有结果。

骨架:讲当时否决掉的方案和否决理由。有没有"没选的路",是判断归属的最硬证据。

8. "给你 30 分钟,现场用 AI 写一个功能"(多家面经出现)

很多人把它当编码速度考,拼了。其实面试官坐在对面看你全程:你先干什么、怎么拆需求、什么时候介入。

骨架:动手前先说验证方案——功能算写完的判据是什么、边界在哪。面试官想看的是你怎么盯 AI,不是 AI 写得多快。

第三组:边界判断(4 道)

9. "哪些模块用 AI 生成,哪些必须手写?为什么?"(SegmentFault 面经原话)

考风险分级意识。

骨架:按出错成本切——核心业务链路、金额计算、权限相关,AI 可以辅助但验证由人签字;模板代码、样式调整、一次性脚本,放心交给 AI。给一条线,比罗列模块名值钱。

10. "这段 AI 生成的代码有什么问题?"(SegmentFault 面经原话)

review 实操题,通常会给你一段有坑的前端代码。

骨架:从行为入手不从风格入手。先跑起来看输出对不对,再看异常处理、边界值、和上下文的耦合。风格问题(命名、缩进)留到最后说,那是 AI 代码最不重要的部分。

11. "说说你平时怎么用 AI 工具的,遇到过什么坑?"(SegmentFault 面经原话)

翻车答法是全程吹效率。这题面试官在等你的"坑",坑是你和 AI 关系的量化器。

骨架:一个具体的坑 + 当时怎么发现的 + 现在怎么防。有坑有防,说明你真的在盯;全是效率,说明你只是用户。

12. "AI 时代,你的不可替代性在哪?"(开放收尾题)

骨架:回到开头那三件拉不平的事——判断(方案取舍)、验证(对结果签字)、担责(出事你兜)。实现可以外包,这三件外包不出去。

12 道题速查表

#追问考察点答题骨架
1P0 事故责任怎么分责任分层提交者兜底→定位失守层→证据链
2review 验证漏了呢验证方法论承认可能→验证动作清单化
3遇到过 review 没发现的坑吗诚实+方法有讲细节,没有给检查点清单
4AI 占比高了谁兜责任前移制度设计,不随占比稀释
5打字机还是实习生AI 定位实习生模式:给方案、review、担责
6能判断 AI 对不对吗验证能力只用动作回答,不用形容词
7项目为什么这么拆简历真伪讲否决掉的方案和理由
830 分钟现场写监督过程先说判据和边界再动手
9哪些必须手写风险分级按出错成本划线
10这段代码有什么问题review 实操行为先于风格
11用 AI 遇到什么坑信任校准一个坑+发现方式+现在怎么防
12你的不可替代性收拢立意判断、验证、担责三件套

写在最后

实现能力在贬值,这个趋势不会回头。面试官的问题从"会不会写"换成"出了事算谁的",本质上是在给团队找能签字的人。

你被问过哪道?评论区报题,被问过的题我补进这版框架。