公司真题库

【字节跳动】AI Coding 生成的代码合入前应如何做代码审查?如何看待 Vibe Coding 这种模式?

91学AI·2026/7/27·8 阅读

考察点

这道题出自字节跳动智能体应用开发岗社招,是工程态度题也是工程能力题。面试官自己团队大概率就在大量使用 AI 编程,他想听的不是「AI 代码不可信」这种保守表态,也不是「效率翻倍」的吹捧,而是你有没有一套具体的、可执行的审查和兜底机制——AI 代码的坑长什么样你知不知道,出了线上事故责任怎么算。第二问 Vibe Coding 考的是你对这种模式的边界认知。

参考答案

AI 代码的典型坑:审查前先知道坑在哪

审查 AI 生成代码和审查人类代码的重点不一样。人类工程师常犯逻辑错误,AI 常犯的是这几类:

  • 幻觉依赖:编造不存在的包名、API 方法、参数。模型把相似库的 API 张冠李戴,或者引用一个根本没人发布过的包——这已经衍生出真实的供应链攻击手法(注册幻觉包名投毒),import 列表必须逐个核实。
  • 「看起来对」的实现:边界条件不处理(空数组、并发、时区)、错误处理用 try-except 一把吞、资源不释放。代码能跑通 happy path,评审不细根本看不出来。
  • 安全隐患:拼接 SQL、把密钥硬编码进代码、输入不校验。模型学的是公开代码的平均水平,公开代码的平均安全水平并不高。
  • 过度工程或复制粘贴味:引入不必要的抽象层和依赖,或者整段搬来许可证不兼容的代码,带来合规风险。
  • 与代码库惯例脱节:项目自有的工具函数、错误码规范、日志规范它不知道,写的是「通用正确答案」而不是「这个项目的正确答案」。

合入前的审查机制

我的做法是三层防线:

第一层:提交前,约束生成过程。 便宜的质量在生成阶段解决:给 AI 提供项目上下文(代码规范文档、相关模块代码),要求它附带生成单测;prompt 里明确禁止事项(不许新增依赖未经确认、不许硬编码密钥)。用 Claude Code、Cursor 这类工具时,CLAUDE.md / rules 文件里写好项目约定,生成质量明显高一档。

第二层:CI 硬门槛,机器能查的不靠人。 静态扫描(SonarQube、Semgrep 查安全反模式)、依赖审计(license 扫描 + 漏洞扫描,幻觉包在这层现形)、密钥扫描、测试覆盖率门槛。AI 代码的 CI 标准应该比人写的更严,因为它的下限更低。

第三层:人工评审,重点移位。 评审 AI 代码时,reviewer 的注意力要从「逐行读逻辑」调整到:依赖清单是否真实且必要、边界与异常路径、测试是否真的断言了行为而不是摆设(AI 特别爱写不断言任何有效行为的「充气测试」)、以及提交者自己是否理解这段代码。最后一个直接问——评审时让提交者讲这段代码的关键逻辑,讲不清楚就打回。

责任边界:AI 没有责任,提交者全责

这一条必须在团队里明说:谁合入谁负责,AI 不是免责理由。线上事故的复盘对象永远是合入人,「代码是 AI 写的」不构成任何减刑。这条规则不立,AI 代码的评审必然流于形式——因为没人真正拥有它。相应的,提交信息里可以标注 AI 生成比例,一是方便事后统计 AI 代码的缺陷率(这个数据对调整流程很有价值),二是事故定位时多一个排查维度。

怎么看 Vibe Coding:分场景,别一刀切

Vibe Coding(只描述需求、不看代码、靠跑起来验收的模式)有它真实的价值区间:一次性脚本、原型验证、个人工具、Demo——这些场景代码寿命短、爆炸半径小,出问题大不了重来,效率收益远大于风险。

但它的适用边界同样清楚:任何要长期维护、多人协作、承载线上流量的代码都不适用。原因很朴素:维护的前提是有个活人理解这段代码。Vibe Coding 产出的代码库没有「作者」——没有人真正懂它,三个月后改需求就是灾难的开始,你以为省了写代码的时间,其实在透支未来十倍的理解成本。团队协作场景里它还有传染性问题:没人懂的代码越积越多,整个库的可维护性塌方。

所以我的态度是:Vibe Coding 是工具箱里的一件工具,用在探索期快速试错完全正当;进入工程化阶段就切换模式——AI 辅助生成、人深度评审、测试兜底,人对每一行合入的代码保持理解和责任。一个团队的危险不在于用 Vibe Coding,而在于分不清自己当前处于哪个阶段。

可能的追问

  • AI 写的测试不可信怎么办? 答:要求测试覆盖边界和异常路径而不只是 happy path;评审时抽查断言是否有效;有条件的话上变异测试(mutation testing)——故意改坏实现看测试是否报错,抓「充气测试」最有效。
  • 怎么量化 AI 编程的真实收益? 答:别只看生成速度,看端到端指标:需求交付周期、AI 代码的缺陷率和返工率、评审耗时。很多团队发现生成省的时间在评审和修 bug 上还回去了,数据说话再调整流程。
  • 幻觉依赖怎么系统性地防? 答:锁定依赖版本清单,AI 新增依赖必须存在于私有源且经过漏洞/license 扫描;CI 里对 import 做白名单校验;生成 prompt 里附上项目现有依赖列表,从源头减少编造。
  • 新人过度依赖 AI 编程怎么看? 答:新人阶段用 AI 跳过基本功训练,欠的债会在排查复杂问题时集中爆发。团队上可以做分层要求:核心模块的 bug 修复和线上问题排查不允许纯 AI 代劳,保持人读代码、调代码的手感。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.