跳到主要内容
SUN / 笔记
← 全部文章

AI Coding 笔试 Prompt 速查

目标不是背 Prompt,而是让每一轮都解决一个明确风险。考试中根据题目删减,不要机械发送全部模板。

0. 工具与仓库侦察

text
先不要修改。请检查题目说明、README、目录、评测入口、公共接口、现有测试和依赖配置。

用不超过 30 行回答:
- 评测可能从哪里调用;
- 哪些接口和格式不能改变;
- 最相关的文件与符号;
- 当前实现到题目目标之间的缺口;
- AI 无执行权限时可以做哪些静态验证。

不要读取生成目录和无关依赖,不要给通用建议。

1. 需求编译

text
先不要写代码。把题目转成 R1~Rn 的可验收规则。

每条包含:
- 输入或前置状态;
- 成功输出和状态变化;
- 非法、边界及失败后状态;
- 相关接口;
- 最可能的隐藏测试。

区分题目事实、代码事实和假设。最后给“规则—代码—测试”矩阵,控制篇幅。

2. 最小方案

text
基于确认后的 R1~Rn,设计最小正确方案。

必须说明:
- 保持不变的公开签名和格式;
- 数据结构、状态机和不变量;
- 每个操作的前置条件、转移和失败行为;
- 时间/空间复杂度;
- 只需修改的文件。

复用现有结构,不新增依赖,不重构无关代码。方案不超过 40 行,暂不修改。

3. 限定范围实现

text
实现 R{起始}~R{结束} 的最小完整闭环。

要求:
- 只改已确认文件;
- 不改变公共接口和已有兼容行为;
- 失败操作保持状态原子性;
- 不新增依赖、占位代码或无关抽象;
- 复杂逻辑集中在可测试函数或明确状态转换;
- 同步写对应测试,但不要声称已运行。

完成后只报告:规则到符号的映射、剩余规则、静态风险。

4. 测试设计

text
请作为隐藏测试出题人,先给测试矩阵,再按仓库现有框架写测试。

必须覆盖:
- 每条 R 规则的正例和反例;
- 空、1、上限和越界;
- 非法输入与非法状态;
- 连续状态转换和跨规则组合;
- 失败前后状态不变;
- 重复、乱序、时间、随机性和复杂度风险;
- 公共接口、返回格式和错误类型。

测试互相独立,不依赖执行顺序。写完静态检查导入、fixture、签名和断言。

5. 有证据的缺陷修复

text
当前证据:
- 失败用例/现象:
- 期望:
- 实际:
- 相关文件或符号:

请先定位实际执行路径,给最多 3 个根因假设及各自证据。
只修复被证据支持的根因,禁止重写整个模块、削弱测试或改变无关行为。
修复后说明覆盖了哪条 R 规则,以及需要复核的相邻场景。

如果没有运行结果,把“失败用例/现象”换成手推时发现的分支矛盾或接口不一致,不要伪造测试失败。

6. 最终静态与隐藏评测审查

text
停止扩展功能。重新读取实际改动文件、直接调用方和测试,进行最终审查:

1. 逐条映射 R1~Rn 到代码和测试;
2. 检查签名、导入、类型、序列化、异常和测试发现规则;
3. 手推最危险的 3 个状态序列;
4. 检查失败原子性、重复调用、顺序依赖和最大输入;
5. 列出最多 10 个高概率隐藏用例及当前实际结果;
6. 区分已证实缺陷和可能风险。

只修已证实缺陷。不重构、不加依赖、不调整公开接口。

时间不足时

还剩 30%

text
停止架构优化。按隐藏评测影响排序,只完成:
1. 缺失的核心规则;
2. 公共接口与输出格式;
3. 状态原子性和最高概率边界;
4. 每条核心规则的最小测试。
不要做文档、注释美化和无关重构。

还剩 10%

text
停止新增功能。只检查编译级问题、公开接口、未完成占位、明显越界和最后 Diff。
除确定会导致评测失败的问题外,不再修改代码。

不要发送的低质量 Prompt

text
帮我把这个项目全部做完。
再优化一下。
不对,重新写。
全面检查所有问题。
帮我保证隐藏测试全过。

这些指令没有范围、证据和完成条件,会诱发重复扫描、大范围修改和 Token 浪费。

相关笔记

相关文章

强化学习笔记 →上下文工程 →Mission: 掌握多模态 LoRA 与 QLoRA →