P
Prompt Master
Prompt Engineering 教程与提示词实战

从任务定义、示例和工作流到评测与安全边界

Prompt Engineering 教程与提示词实战Prompt Library

Coding Prompts

code generation prompts(overview)

本章 Prompt 决定
01要解决的 Prompt 问题

code generation prompts(overview)

02完成后带走

一份保留任务边界的可复用 Prompt、示例集、评测记录或安全规则。

03做到什么算完成

至少跑一个代表性样本,检查结果,并记录仍需人工复核的部分。

这一节收集了 code generation 相关的 prompt。重点不是“让 AI 写完所有代码”,而是让 prompt 变成一种可重复的接口(清晰的 input + constraints + output format),从而提升可控性与复用性。

适用场景

  • 快速生成样板代码或脚手架
  • 把自然语言需求转成可执行代码
  • 修复 bug、补边界条件或加日志
  • 生成测试用例、对齐接口格式

核心结构(建议每次写清楚)

  1. 目标:要做什么功能
  2. 上下文:语言版本、框架、约束、已有代码
  3. 输入:数据结构、样例、边界
  4. 输出:格式、文件位置、函数签名
Prompt Lab

把这章的知识,直接变成实战能力

进入交互式实验室,用真实任务练 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 条以内),模型不敢扩散修改。