7. AI Coding 面试高分 Prompt 手册

[!note] 📎 关联总纲 本文是《[[从零到一设计 Agent:结合生产实践,Pi,Claude Code|从零到一设计 Agent]]》的展开阅读笔记(对应:第 21 章 · Vibe Coding Prompt),与总纲双向互链,点击总纲可回到全书语境。

[!tip] 📎 姊妹篇 本文面向已有代码库的功能改造题。如果面试官是从零实现(空目录起步),请看 → [[8. 从零到一 AI Coding 面试高分 Prompt 手册]]。

AI Coding 面试高分 Prompt 手册

适用于允许使用 AI 编程工具的前端、后端、全栈和原型开发面试。

Vibe Coding 面试不是“谁让 AI 写得最快”,而是看你能否像一名可靠的工程师一样驾驭 AI:理解需求、控制范围、审查代码、发现错误,并用可复现的证据证明结果正确。

真正拉开分差的不是一条神奇 Prompt,而是一套稳定的工作循环:

理解 → 澄清 → 计划 → 小步实现 → 验证 → 审查 → 汇报


一、面试官真正关注什么

能力高分表现低分表现
需求理解先复述目标,确认边界和验收标准看完题目立刻让 AI 开写
任务拆解按可验证的小步推进一次生成整个项目
工程判断能解释方案、取舍和风险只会转述 AI 的回答
上下文管理让 AI 先读相关代码和约定不看现有结构,另起炉灶
代码审查主动检查 diff、调用链和边界条件AI 写完直接接受
调试能力根据报错提出假设并最小化修复反复说“还是不行,继续修”
验证能力测试、类型检查、Lint、手动验收都有证据以“看起来能跑”作为完成标准
沟通能力持续说明当前判断和下一步全程沉默操作工具
时间管理先交付核心路径,再处理增强项前半程过度设计,最后没有可运行结果

一句话原则:AI 负责提高吞吐量,你负责方向、判断和质量。


二、万能 Prompt 结构

高质量 Prompt 通常包含六部分:

text
复制代码
目标:要实现什么用户结果。 上下文:相关文件、现有行为、技术栈和项目约定。 范围:必须做什么,明确不做什么。 约束:兼容性、性能、安全、依赖和代码风格要求。 验收标准:什么结果才算完成。 工作方式:先分析还是直接改、每步如何验证、最终如何汇报。

可直接复制的总控 Prompt

text
复制代码
你是我的结对编程助手。请帮助我完成下面的任务,但不要替我做未经确认的产品或架构决定。 【目标】 <用一句话描述用户最终能完成什么> 【必须满足】 - <功能要求 1> - <功能要求 2> - <关键边界条件> 【本轮不做】 - <非目标 1> - <非目标 2> 【工程约束】 - 遵循现有项目结构、命名和代码风格 - 优先复用已有组件、工具函数和依赖 - 除非确有必要,不新增依赖、不做无关重构 - 不删除、跳过或弱化现有测试来让结果通过 - 对输入、失败状态和安全边界进行显式处理 【验收标准】 - <可观察结果 1> - <可观察结果 2> - 相关测试通过,且没有引入新的类型或静态检查错误 【工作方式】 1. 先阅读相关代码和项目说明,概括当前实现。 2. 列出不超过 3 个需要我确认的问题;若信息足够,写明合理假设并继续。 3. 给出最小可行方案、将修改的文件、风险和验证方法,暂时不要改代码。 4. 等我确认后按小步实现;每一步都说明改了什么以及如何验证。 5. 完成后审查完整 diff,运行相关检查,并按“结果、证据、风险、未完成项”汇报。

面试中不要机械粘贴所有内容。题目越小,Prompt 越短;只保留真正影响结果的约束。


三、面试现场 Prompt 链

相比一条超长 Prompt,分阶段对话更容易展示你的判断,也更方便在 AI 走偏时及时纠正。

1. 先理解代码库

text
复制代码
先不要修改代码。请快速检查项目结构、启动方式、测试命令和与任务最相关的文件。 请输出: 1. 当前功能和数据流的简要说明; 2. 最可能需要修改的文件及原因; 3. 可以复用的现有模式、组件或工具函数; 4. 你发现的歧义、风险和未知项; 5. 建议运行的最小验证命令。 只报告你从代码中确认的事实;推测请明确标记为“假设”。

高分点:先建立事实,再做方案;避免 AI 凭经验虚构项目结构。

2. 把题目变成可验收规格

text
复制代码
请把题目整理为一个最小可交付规格,不要扩展需求。 输出: - 一句话用户目标; - 3~5 条可观察的验收标准; - 正常路径、空状态、错误路径和关键边界条件; - 本轮明确不做的内容; - 仍需确认的问题。 如果题目与现有代码行为冲突,请指出冲突,不要自行选择。

你可以对面试官说:

我先把自然语言题目转成可验证的验收标准,这样后面能判断 AI 写的是不是正确的东西。

3. 让 AI 规划,但由你拍板

text
复制代码
基于已确认的验收标准,给出一个能在当前面试时间内完成的最小方案。 要求: - 优先沿用现有架构和依赖; - 将任务拆成 2~4 个可独立验证的步骤; - 对每步列出修改文件、核心逻辑和验证方式; - 标出最可能失败的地方; - 如有多种方案,只比较最合理的两种,并给出推荐及取舍; - 暂时不要修改代码。

拿到计划后,你应该主动删掉不必要的抽象、依赖和增强项,而不是直接批准。

4. 实现一个最小切片

text
复制代码
现在只实现计划中的第 <N> 步。 约束: - 修改最少且必要的文件; - 遵循相邻代码的实现模式; - 不顺手重构无关代码; - 不新增依赖,除非先说明现有方案为何不足; - 补充覆盖本步行为的测试; - 修改后运行最相关的快速检查。 完成后停止,并汇报:修改内容、检查结果、下一步和仍存在的风险。

高分点:把 AI 的“自由生成”变成受控的小批量变更。

5. 精准 Debug

不要只说“修一下”。把错误现象、预期行为和证据一起交给 AI。

text
复制代码
出现了下面的失败: 【复现步骤】 <如何稳定复现> 【实际结果】 <报错、日志、失败测试或页面现象> 【预期结果】 <正确行为> 请先不要改代码。完成以下分析: 1. 从错误发生点向上追踪相关调用链; 2. 提出最多 3 个根因假设,并按可能性排序; 3. 为每个假设给出可证伪的最小检查; 4. 选出证据最强的根因; 5. 给出最小修复和防止回归的测试。 不要用吞掉异常、删除断言、跳过测试或硬编码结果的方式绕过问题。

验证假设后再发:

text
复制代码
检查结果支持假设 <N>。请只修复这个根因并添加回归测试,不要扩大修改范围。完成后重新运行失败测试及其相邻测试,并解释为什么这次修复解决的是根因而不是症状。

6. 主动补齐测试

text
复制代码
根据验收标准和当前 diff,列出还缺少的测试。优先级依次为: 1. 会导致核心功能错误的边界条件; 2. 错误处理和非法输入; 3. 容易被本次修改破坏的既有行为; 4. 安全或数据一致性风险。 先给出测试矩阵,不要立即生成大量测试。选择最高价值的最小集合,说明每个测试能捕获哪种具体回归;经确认后再实现并运行。

测试矩阵建议使用:

场景输入/前置条件预期结果测试层级
正常路径合法输入正确输出单元/集成
边界值空值、零值、上限行为符合规格单元
错误路径非法输入、依赖失败明确且安全地失败单元/集成
回归场景本次缺陷的最小复现缺陷不再出现回归测试

7. 审查 AI 生成的代码

text
复制代码
请以严格代码审查者的视角检查当前完整 diff,不要直接继续修改。 逐项检查: - 是否完整满足验收标准,有没有实现错问题; - 正常、空、错误和并发/重复操作等边界; - 是否破坏现有调用方、接口或数据兼容性; - 输入校验、权限、敏感信息、注入和依赖风险; - 是否存在多余抽象、重复逻辑或无关改动; - 测试是否真的验证行为,而不只是覆盖代码; - 是否有被删除、跳过或弱化的测试。 每个发现请给出:严重程度、文件与位置、触发条件、影响、修复建议。 如果没有发现,也要说明检查过哪些调用链和边界,不要只回复“看起来没问题”。

8. 最终验收

text
复制代码
请执行最终验收: 1. 对照每条验收标准逐项核验; 2. 运行适合本次修改的测试、类型检查、Lint 和构建; 3. 检查完整 diff 与未跟踪文件; 4. 确认没有调试代码、硬编码密钥、无关改动、被跳过测试或多余依赖; 5. 如条件允许,执行一遍核心用户路径的手动冒烟测试。 最后只按以下格式汇报: - 已完成: - 验证证据: - 关键设计取舍: - 已知风险或未验证项: - 如果再有 15 分钟,下一步会做: 任何没有实际运行的检查必须标为“未运行”,不能推断为通过。

四、不同题型的加分 Prompt

前端 / UI

text
复制代码
实现前先把页面拆成状态,而不只是静态画面:加载、成功、空数据、错误、禁用和提交中。 请检查: - 组件边界和状态归属是否清晰; - 键盘操作、焦点、标签和基础可访问性; - 窄屏和宽屏布局; - 长文本、空值、重复点击和慢请求; - 是否复用已有设计系统和组件; - 是否引入不必要的全局状态。 先给出组件树、状态表和最小验收路径,再开始实现。

后端 / API

text
复制代码
实现这个接口前,请先追踪现有请求链路,并明确: - 输入 schema、认证与授权边界; - 成功和失败响应契约; - 数据一致性、幂等性、事务和并发风险; - 超时、重试、日志及敏感信息处理; - 数据库查询数量和明显的性能风险; - 与现有调用方的兼容性。 优先复用现有 handler/service/repository 模式。先输出接口契约和测试矩阵,再做最小实现。

SQL / 数据处理

text
复制代码
请先确认表结构、字段语义、数据规模和目标输出,再设计查询。 要求检查: - NULL、重复数据、时区和日期边界; - JOIN 是否可能放大行数; - 聚合粒度是否正确; - 查询是否可利用现有索引; - 写操作是否需要事务或幂等保护。 先用一个小型示例数据集手工推导预期结果,再写查询;完成后用反例验证。

性能优化

text
复制代码
不要凭感觉优化。请先定位可测量的瓶颈,并给出当前基线、可能原因和测量方法。 只实施一个证据最充分的改动,然后使用相同输入和环境比较前后结果。说明时间复杂度、空间代价、可读性影响,以及为什么没有选择其他方案。

安全敏感功能

text
复制代码
先标出信任边界、攻击面和敏感数据流。重点检查权限绕过、输入注入、越权访问、密钥泄露、不安全默认值以及错误信息暴露。 不要自行读取或输出密钥,不要关闭安全检查。任何涉及权限模型、数据删除或外部系统写入的决定先暂停并向我说明风险。

五、边操作边讲什么

Prompt 只是屏幕上的证据,口头表达才让面试官理解你的判断。

开场

我先确认核心用户目标和验收标准,然后让 AI 快速熟悉相关代码。拿到方案后我会控制范围,先完成一条可运行的核心路径。

AI 给出方案后

这个方案基本可行,但它建议新增依赖和重构公共模块,这两项不是本题必需。我会保留现有结构,把修改限制在最小范围。

AI 生成代码后

我不会因为代码能编译就直接接受。现在我会检查关键数据流、错误路径、调用方兼容性和测试是否真正验证了需求。

遇到失败时

我先把现象与根因分开。这个报错可能来自数据形状、状态更新或接口契约,我会用最小检查逐个证伪,而不是让 AI 随机改代码。

时间不足时

我会优先保证核心路径可运行、可演示、可验证。增强功能记录为后续项,不牺牲正确性去堆功能数量。

收尾

核心验收标准已经逐项验证。当前证据包括这些测试和手动路径;仍未覆盖的是这个外部依赖场景,如果继续我会优先补它。


六、60 分钟实战节奏

时间目标你要留下的证据
0~5 分钟复述需求、确认限制验收标准、非目标、假设
5~10 分钟浏览代码、确认运行方式相关文件、数据流、检查命令
10~15 分钟选择最小方案2~4 步计划、风险、测试策略
15~40 分钟小步实现核心路径每步可运行、局部测试通过
40~50 分钟边界、错误与回归测试关键测试矩阵和运行结果
50~57 分钟审查 diff、手动冒烟无无关改动,核心路径可演示
57~60 分钟总结结果、证据、取舍、剩余风险

如果只有 30~45 分钟,压缩功能范围,不要删除验证环节。


七、最常见的失分方式

1. 一上来就说“帮我完成这个项目”

问题:范围模糊,AI 容易过度实现,面试官也看不到你的思考。

改法:先让 AI 读代码、整理验收标准,再只实现第一步。

2. 复制一条巨大 Prompt 后全程沉默

问题:Prompt 再漂亮,也无法证明你理解每个决策。

改法:使用短 Prompt 链,每次输出后主动评价、纠偏并说明取舍。

3. AI 说“测试通过”就相信

问题:AI 可能没有运行测试、只跑了局部测试,或误读了输出。

改法:要求展示实际命令、结果和未运行项;关键路径自己复核。

4. 为了变绿而删测试或吞异常

问题:这是明显的工程判断失分项。

改法:要求先定位根因,新增回归测试,再做最小修复。

5. 只追求界面效果,忽略状态和边界

问题:演示可能好看,但加载、空数据、错误、重复提交就会失败。

改法:实现前先列状态表,至少覆盖核心状态。

6. 随意新增框架和依赖

问题:增加安装失败、安全、兼容性和解释成本。

改法:默认复用当前依赖;新增依赖必须说明收益和替代方案。

7. 看不懂 AI 代码却继续叠功能

问题:面试官追问任意一行都可能暴露失控。

改法:每个小步结束后,用自己的话解释数据如何进入、转换和输出。

8. 最后一分钟才运行项目

问题:没有时间处理集成问题,也没有完成证据。

改法:尽早打通一条最小路径,之后每个阶段都保持可运行。


八、提交前自评分表

每项 0~2 分:0 = 没做,1 = 做了但证据不足,2 = 有清晰证据。

项目分数
我准确复述了用户目标和非目标/2
我定义了可观察的验收标准/2
我理解并能解释相关代码流/2
我质疑或修正过 AI 的方案/2
修改范围小且符合现有模式/2
我审查了完整 diff/2
我验证了正常、边界和错误路径/2
我运行了相关测试和静态检查/2
我能解释关键设计取舍/2
我明确汇报了风险和未验证项/2

建议目标:16 分以上。如果低于 12 分,通常不是 Prompt 不够花哨,而是工程闭环没有完成。


九、平时怎么练

选一个 45~60 分钟能完成的小功能,录屏完成整套流程。复盘时只看四件事:

  1. 你是否在 AI 写代码前定义了成功标准?
  2. 你是否至少一次拒绝或纠正了 AI 的建议,并说清原因?
  3. 你是否用实际运行结果证明完成,而不是口头宣称?
  4. 在断网或 AI 不可用时,你是否仍能解释并调试最终代码?

最有效的训练题不是从零生成 Todo App,而是在陌生的小型项目中完成真实改动,例如:增加一个带校验的接口、修复一个回归缺陷、补齐错误状态、优化一条慢查询,或为既有功能添加测试。


最后记住

高分候选人的 Prompt 往往并不炫技。它们只是持续做到四件事:

  • 给 AI 足够且相关的上下文;
  • 把任务限制在清晰、可验证的范围内;
  • 对 AI 输出保持怀疑并主动审查;
  • 用测试、运行结果和清楚的解释承担最终责任。

不要向面试官证明 AI 很强,要证明你能让 AI 在你的控制下稳定交付。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP