Coding Prompts
code generation prompts(overview)
这一节收集了 code generation 相关的 prompt。重点不是“让 AI 写完所有代码”,而是让 prompt 变成一种可重复的接口(清晰的 input + constraints + output format),从而提升可控性与复用性。
适用场景
- 快速生成样板代码或脚手架
- 把自然语言需求转成可执行代码
- 修复 bug、补边界条件或加日志
- 生成测试用例、对齐接口格式
核心结构(建议每次写清楚)
- 目标:要做什么功能
- 上下文:语言版本、框架、约束、已有代码
- 输入:数据结构、样例、边界
- 输出:格式、文件位置、函数签名
把这章的知识,直接变成实战能力
进入交互式实验室,用真实任务练 Prompt,10 分钟快速上手。
Prompt 模板(通用版)
你是资深工程师,请实现以下功能:
目标:
- {{WHAT_TO_BUILD}}
上下文:
- Language: {{LANG_VERSION}}
- Framework: {{FRAMEWORK}}
- Style: {{STYLE_OR_GUIDE}}
- Constraints: {{CONSTRAINTS}}
输入:
{{INPUT_SPEC}}
输出:
- 只输出代码
- 必须包含 {{FUNCTION_NAME}}
- 保持现有 API 不变
示例 1:生成函数
你是资深前端工程师,用 TypeScript 实现一个函数。
目标:
- 把用户列表按年龄分组
上下文:
- Language: TypeScript 5
- Constraints: 纯函数,不修改原数组
输入:
type User = { id: string; name: string; age: number }
const users: User[] = [...]
输出:
- 函数名 groupByAge
- 返回 Record<number, User[]>
- 只输出代码
示例 2:修复 bug
你是资深后端工程师,请修复下面的代码问题并解释原因。
问题:
- 当 amount 为 0 时会抛错
- 精度出现 0.30000000000004
上下文:
- Node.js 20
- 不能引入新依赖
代码:
function calcTotal(items) {
return items.reduce((sum, item) => sum + item.amount, 0);
}
输出:
- 修复后的代码
- 3 条以内说明
示例 3:生成测试用例
你是资深测试工程师,请为下面函数生成单元测试。
上下文:
- Testing: Jest
- 覆盖正常输入、空数组、异常输入
代码:
export function normalizeEmail(email: string) {
return email.trim().toLowerCase();
}
输出:
- Jest 测试代码
常见问题与修复方式
- 输出不稳定:加长度/格式约束,固定字段顺序
- 忽略边界:明确列出 edge cases,并要求覆盖
- 代码跑不通:提供更完整的上下文与依赖版本
- 风格不一致:指定 lint 规则或已有风格
Index
📚 相关资源
❓ 常见问题
关于本章主题最常被搜索的问题,点击展开答案
让 AI 写代码,Prompt 应该写哪四件事?
目标(要做什么功能)、上下文(语言版本、框架、约束、已有代码)、输入(数据结构、样例、边界)、输出(格式、文件位置、函数签名)。这四块一缺,模型就开始臆测——TypeScript 5 的代码可能写成 ES5、Node.js 20 的写成 Node 14,编译直接报错。
为什么生成的代码经常跑不通?
本章列了四个常见原因:上下文不够(没说依赖版本)、边界没列(空数组、null、异常输入没覆盖)、风格不一致(lint 规则没给)、输出格式没钉(多了 markdown 代码块解释)。修法是把这些都写进 Prompt,比如「Node.js 20,不能引入新依赖,只输出代码」,本章修 bug 示例就是这个写法。
用 AI 写测试用例靠谱吗?要怎么 Prompt?
靠谱但要给约束。本章 Jest 示例是好模板:写明 testing 框架(Jest / Vitest / pytest)、覆盖范围(正常输入、空数组、异常输入)、目标函数代码完整粘贴。最容易翻车的点是模型只测 happy path——必须显式列 edge cases,否则边界 bug 全漏。
代码 Prompt 输出风格不一致怎么办?
把团队 lint 规则或一段已有代码作为 style anchor 放进 Prompt 上下文,例如「参考下方风格,使用同样的命名、缩进、import 顺序」,再粘一段团队代码。比单纯说「保持现有风格」精准得多。Cursor / Claude Code 这类 IDE agent 直接读代码库会更稳。
改 bug 用 AI 时,怎么避免它把无关代码也重写一遍?
Prompt 里写「保持现有 API 不变」「只修问题相关代码,其他保持原样」「输出 diff 而不是整个文件」。本章修 `calcTotal` 精度 bug 的示例就是这种做法——只列问题(amount=0 报错、精度异常)、给约束(不引入新依赖)、限制说明(3 条以内),模型不敢扩散修改。