AICoding 笔试考查的不只是"能不能写出代码",还包括理解需求、组织代码、验证结果和处理反馈的能力。面对陌生项目,与其让 AI 一次性生成全部代码,不如把任务拆成一条可验证的工程流程:理解需求 → 设计方案 → 分模块实现 → 测试验证 → 整体联调 → 提交复盘。
这套方法适合有明确 README、测试用例或自动判分机制的 Python 编码题,也适用于时间有限、需要借助 AI 协作完成的项目型笔试。
总结自B站大神Ceceliaovo
一、先读题,再动手
拿到题目后,第一步不是写代码,而是让 AI 先通读 README 和现有代码,并输出:
- 题目目标、最终交付物、输入输出与约束条件
- 现有目录结构和可复用代码
- 运行、测试和验收方式
- 不明确的需求、潜在风险及待确认事项
再按优先级拆分需求:
- P0(核心任务):不完成就无法运行或通过的主流程
- P1(重要任务):保证主要功能完整性的扩展能力
- P2(优化任务):边界增强、性能、代码质量和体验优化
先完成 P0,再根据剩余时间处理 P1 和 P2,确保始终有一个可运行、可验收的版本。
二、先写设计文档,确定实现路径
编码前先让 AI 生成一份简短设计文档,至少包含:
- 总体方案与技术选型
- 模块拆分、目录结构、职责和依赖关系
- 类、函数及接口设计
- 数据结构、状态流转与异常处理
- 开发顺序、测试策略和每一步的验收标准
明确要求不同职责放在不同 Python 文件中,避免所有逻辑堆在一个文件里。设计文档不必写成论文,关键是让实现有边界、接口有依据,出现问题时容易定位。
三、按模块开发,保持上下文清晰
建议一次只处理一个模块,并把设计文档中与它相关的部分提供给 AI。每个模块都遵循相同节奏:
- 说明目标、输入输出和接口约束。
- 按设计实现代码,保持与其他模块的接口一致。
- 同步编写单元测试或基础测试。
- 运行格式检查、类型检查和测试,记录结果。
为每个模块单独开启会话,有助于减少上下文干扰。如果依赖模块尚未完成,可以先用清晰的接口或 mock,避免等待造成停滞。
四、测试通过后再推进
当前模块通过主流程和关键边界测试后,再进入下一个模块。测试失败时:
- 阅读完整报错,确认失败层级;
- 结合输入、输出和调用链定位根因;
- 采用最小范围修复,避免顺手改动无关代码;
- 修复后重跑失败用例和相关回归测试;
- 接口或行为变化时,同步更新设计文档。
"测试绿了"不等于问题解决了,还要确认修复没有破坏原有接口,或只对单个样例生效。
编写测试时,要提醒 AI 主动关注极端情况,并确保生成的测试覆盖这些场景,而不是只围绕正常输入和示例编写测试。对极端情况也应明确预期行为,这样才能更早发现边界问题,减少"恰好能通过"的测试。
五、全部完成后做整体联调
各模块分别通过测试后,再进行一次整体 Review,重点检查:
- 参数、返回值和数据格式是否一致
- 程序能否从入口完整跑通
- 配置、文件路径和环境变量是否正确
- 异常处理、日志和资源释放是否完整
- 单元测试与集成测试是否通过
- 是否存在重复代码、过大的单文件或未实现的 TODO
联调阶段的目标是验证"组合后能不能工作",发现问题时优先修接口和主流程,再处理非关键优化。
六、提交判分:把反馈变成下一轮输入
提交后,将失败测试点、完整错误信息、输入输出和复现条件原样提供给 AI,并要求它:
- 解释失败原因及涉及的代码路径;
- 给出最小修改范围和可能的副作用;
- 修复后运行失败用例及相关回归测试;
- 确认通过后再提交下一轮。
不要只根据测试名称猜测问题。隐藏测试可能考查空输入、异常参数、重复调用、资源清理或边界数据,必须结合完整上下文判断。
如何组织与 AI 的协作要求
不建议机械套用固定 Prompt。与 AI 协作时,应该根据当前阶段说明四件事:任务目标、已有约束、允许修改的范围,以及完成后的验证方式。
- 需求分析阶段:要求先阅读文档和代码,再总结目标、约束、优先级与风险,暂不修改文件。
- 模块开发阶段:说明模块职责和接口,要求实现后同步补测试,并报告检查结果。
- 测试阶段:明确要求覆盖正常、边界和极端输入,写出每种情况的预期行为。
- 失败修复阶段:提供完整报错和复现条件,要求先解释根因,再做最小修改并运行回归测试。
这种"阶段目标 + 约束 + 验证标准"的表达方式,比一段固定话术更容易适配不同题目,也更便于检查 AI 是否真正理解了任务。
时间有限时的执行顺序
- 先完成 README、P0 需求和最小可运行链路。
- 为主流程补基础测试,尽早暴露接口问题。
- 完成 P1 功能和高概率边界场景。
- 最后处理 P2 优化、重构和文档整理。
始终保留一个可提交版本,并记录每个阶段的状态,避免一次大范围改动影响已经可用的结果。
常见注意事项
- 接受变更后文件才会真正写入,提交前确认修改已落盘。
- 文件资源页面通常不能直接复制,优先使用代码文件的实际路径。
- AI 生成代码可能较慢,应预留测试和修复时间。
- 测试通过后仍要核对 README 中的完整验收标准。
一句话总结
把 AICoding 笔试当作一次小型工程实践:先读题拆优先级,再用设计文档确定边界;随后按模块实现并测试,最后通过联调、判分和复测持续收敛,稳定交付一个可运行、可验证的版本。