【AICoding】笔试提示词设计思路

AICoding 笔试考查的不只是"能不能写出代码",还包括理解需求、组织代码、验证结果和处理反馈的能力。面对陌生项目,与其让 AI 一次性生成全部代码,不如把任务拆成一条可验证的工程流程:理解需求 → 设计方案 → 分模块实现 → 测试验证 → 整体联调 → 提交复盘

这套方法适合有明确 README、测试用例或自动判分机制的 Python 编码题,也适用于时间有限、需要借助 AI 协作完成的项目型笔试。

总结自B站大神Ceceliaovo


一、先读题,再动手

拿到题目后,第一步不是写代码,而是让 AI 先通读 README 和现有代码,并输出:

  • 题目目标、最终交付物、输入输出与约束条件
  • 现有目录结构和可复用代码
  • 运行、测试和验收方式
  • 不明确的需求、潜在风险及待确认事项

再按优先级拆分需求:

  • P0(核心任务):不完成就无法运行或通过的主流程
  • P1(重要任务):保证主要功能完整性的扩展能力
  • P2(优化任务):边界增强、性能、代码质量和体验优化

先完成 P0,再根据剩余时间处理 P1 和 P2,确保始终有一个可运行、可验收的版本。


二、先写设计文档,确定实现路径

编码前先让 AI 生成一份简短设计文档,至少包含:

  1. 总体方案与技术选型
  2. 模块拆分、目录结构、职责和依赖关系
  3. 类、函数及接口设计
  4. 数据结构、状态流转与异常处理
  5. 开发顺序、测试策略和每一步的验收标准

明确要求不同职责放在不同 Python 文件中,避免所有逻辑堆在一个文件里。设计文档不必写成论文,关键是让实现有边界、接口有依据,出现问题时容易定位。


三、按模块开发,保持上下文清晰

建议一次只处理一个模块,并把设计文档中与它相关的部分提供给 AI。每个模块都遵循相同节奏:

  1. 说明目标、输入输出和接口约束。
  2. 按设计实现代码,保持与其他模块的接口一致。
  3. 同步编写单元测试或基础测试。
  4. 运行格式检查、类型检查和测试,记录结果。

为每个模块单独开启会话,有助于减少上下文干扰。如果依赖模块尚未完成,可以先用清晰的接口或 mock,避免等待造成停滞。


四、测试通过后再推进

当前模块通过主流程和关键边界测试后,再进入下一个模块。测试失败时:

  • 阅读完整报错,确认失败层级;
  • 结合输入、输出和调用链定位根因;
  • 采用最小范围修复,避免顺手改动无关代码;
  • 修复后重跑失败用例和相关回归测试;
  • 接口或行为变化时,同步更新设计文档。

"测试绿了"不等于问题解决了,还要确认修复没有破坏原有接口,或只对单个样例生效。

编写测试时,要提醒 AI 主动关注极端情况,并确保生成的测试覆盖这些场景,而不是只围绕正常输入和示例编写测试。对极端情况也应明确预期行为,这样才能更早发现边界问题,减少"恰好能通过"的测试。


五、全部完成后做整体联调

各模块分别通过测试后,再进行一次整体 Review,重点检查:

  • 参数、返回值和数据格式是否一致
  • 程序能否从入口完整跑通
  • 配置、文件路径和环境变量是否正确
  • 异常处理、日志和资源释放是否完整
  • 单元测试与集成测试是否通过
  • 是否存在重复代码、过大的单文件或未实现的 TODO

联调阶段的目标是验证"组合后能不能工作",发现问题时优先修接口和主流程,再处理非关键优化。


六、提交判分:把反馈变成下一轮输入

提交后,将失败测试点、完整错误信息、输入输出和复现条件原样提供给 AI,并要求它:

  1. 解释失败原因及涉及的代码路径;
  2. 给出最小修改范围和可能的副作用;
  3. 修复后运行失败用例及相关回归测试;
  4. 确认通过后再提交下一轮。

不要只根据测试名称猜测问题。隐藏测试可能考查空输入、异常参数、重复调用、资源清理或边界数据,必须结合完整上下文判断。


如何组织与 AI 的协作要求

不建议机械套用固定 Prompt。与 AI 协作时,应该根据当前阶段说明四件事:任务目标、已有约束、允许修改的范围,以及完成后的验证方式。

  • 需求分析阶段:要求先阅读文档和代码,再总结目标、约束、优先级与风险,暂不修改文件。
  • 模块开发阶段:说明模块职责和接口,要求实现后同步补测试,并报告检查结果。
  • 测试阶段:明确要求覆盖正常、边界和极端输入,写出每种情况的预期行为。
  • 失败修复阶段:提供完整报错和复现条件,要求先解释根因,再做最小修改并运行回归测试。

这种"阶段目标 + 约束 + 验证标准"的表达方式,比一段固定话术更容易适配不同题目,也更便于检查 AI 是否真正理解了任务。


时间有限时的执行顺序

  1. 先完成 README、P0 需求和最小可运行链路。
  2. 为主流程补基础测试,尽早暴露接口问题。
  3. 完成 P1 功能和高概率边界场景。
  4. 最后处理 P2 优化、重构和文档整理。

始终保留一个可提交版本,并记录每个阶段的状态,避免一次大范围改动影响已经可用的结果。


常见注意事项

  • 接受变更后文件才会真正写入,提交前确认修改已落盘。
  • 文件资源页面通常不能直接复制,优先使用代码文件的实际路径。
  • AI 生成代码可能较慢,应预留测试和修复时间。
  • 测试通过后仍要核对 README 中的完整验收标准。

一句话总结

把 AICoding 笔试当作一次小型工程实践:先读题拆优先级,再用设计文档确定边界;随后按模块实现并测试,最后通过联调、判分和复测持续收敛,稳定交付一个可运行、可验证的版本。

相关推荐
珍珠先生1 小时前
第10章 JDK 17 新特性:语法糖与新能力
java
明月_清风1 小时前
位图与布隆过滤器:海量数据下的"存在性判断"艺术
前端·后端·算法
杨杨杨大侠1 小时前
全量微调、LoRA、QLoRA 怎么选?用简单例子讲清六种微调方法
aigc·openai·ai编程
Rnan-prince1 小时前
堆与TopK · 从零到通透 —— 9 节全系列复盘
python·算法
明月_清风1 小时前
Hash 表从入门到精通:Go 实战与工程细节
前端·后端·算法
nbsaas-boot2 小时前
多智能体系统的架构边界:任务编排、共享状态与故障隔离设计
人工智能·算法·动态规划
嘿嘿-662 小时前
GPT-6 Astra 新手快速上手指南
人工智能·gpt·ai·chatgpt·ai编程
jimidou2 小时前
子 Agent 能并行,却不能互相说话:Claude Code 里哪些活不该委派
agent·ai编程
wuyk5552 小时前
12.归并排序:分治思想的稳定排序算法
开发语言·数据结构·算法·排序算法