Claude Code 提示词工程免费专栏全套教程 Claude Code 从入门到精通✦开篇总览最新目录 Claude Code 从入门到精通 —带你玩转Claude Code掌握提示词编写艺术让 Claude Code 发挥最大效能目录提示词编写原则结构化提示词代码生成提示词调试与分析提示词高级提示词技巧提示词编写原则1. 清晰明确提示词应当简洁明了避免模糊不清的表述。# ❌ 模糊的提示词 帮我处理一下这个文件 # ✅ 清晰的提示词 读取 /src/data/users.json 文件过滤出所有 age 18 的用户 并将结果保存到 /output/adults.json2. 提供上下文给 Claude Code 足够的背景信息帮助其理解你的意图。# ❌ 缺乏上下文 优化这段代码 # ✅ 提供上下文 这是一个处理用户登录的 Express.js 中间件。 当前存在内存泄漏问题用户量大时 CPU 占用过高。 请分析并优化性能同时保持现有的 API 接口不变。3. 分解复杂任务将大型任务拆分为可管理的小步骤。# ❌ 任务过于笼统 帮我重构整个项目 # ✅ 分解步骤 请分步骤帮我重构这个项目 1. 先分析现有代码结构找出需要改进的地方 2. 制定重构计划包括目录结构调整 3. 重构核心模块每次只改一个模块 4. 为每个改动编写或更新测试 5. 运行测试确保功能正常4. 指定输出格式明确说明你期望的输出格式。# ❌ 未指定格式 列出所有 TODO 项 # ✅ 指定格式 扫描项目中所有的 TODO 注释按以下格式输出 | 文件路径 | 行号 | TODO 内容 | 优先级 | |---------|------|-----------|--------| | ... | ... | ... | ... | 按优先级排序高/中/低5. 迭代优化通过反馈逐步完善提示词。# 初始提示词 写一个函数计算斐波那契数列 # 优化后的提示词基于第一次反馈 写一个 TypeScript 函数计算斐波那契数列 - 使用记忆化优化性能 - 支持大数计算使用 BigInt - 添加参数验证和类型定义 - 包含 JSDoc 注释和使用示例结构化提示词角色-任务-约束模式这是最常用且有效的结构化提示词模式。## 角色 你是一个资深的前端性能优化专家擅长 Webpack 配置和代码分割。 ## 任务 分析我的 Next.js 项目构建产物找出导致打包体积过大的原因。 ## 约束 - 使用 webpack-bundle-analyzer 分析 - 输出中文报告 - 重点关注超过 100KB 的 chunk - 提供具体的优化建议和代码示例 ## 当前状态 项目使用 Next.js 14构建后主包大小 2.5MB 包含大量第三方库如 lodash、moment 等。CRISP 框架## Context上下文 我正在开发一个电商平台的商品搜索功能。 ## Request请求 实现一个支持模糊搜索和高亮的搜索组件。 ## Information信息 - 使用 React 18 TypeScript - 需要支持拼音搜索 - 数据量约 10 万条商品 ## Specification规格 typescript interface SearchProps { data: Product[]; onSearch: (results: Product[], query: string) void; placeholder?: string; debounceMs?: number; }Purpose目的提升用户查找商品的效率减少搜索耗时。### 分层结构示例 markdown # 第一层项目概述 这是一个博客系统 API 项目使用 Node.js Express MongoDB。 # 第二层模块说明 ## 认证模块 - JWT token 认证 - 支持第三方登录Google, GitHub - 密码使用 bcrypt 加密 ## 文章模块 - CRUD 操作 - Markdown 解析 - 评论功能 # 第三层具体任务 请为认证模块编写单元测试覆盖以下场景 1. 用户注册正常/重复邮箱/密码强度不足 2. 用户登录正常/密码错误/账号不存在 3. Token 刷新正常/过期 4. 密码重置流程代码生成提示词基础代码生成# 创建工具函数 请创建一个工具函数实现以下功能 ## 函数名 formatCurrency ## 功能 将数字格式化为货币字符串 ## 参数 - value: number - 金额数值 - currency?: string - 货币符号默认 ¥ - decimals?: number - 小数位数默认 2 ## 返回值 格式化后的字符串如 ¥1,234.56 ## 要求 - 使用 TypeScript - 添加参数类型检查 - 包含单元测试完整模块生成# 创建完整模块 请为用户管理功能创建完整的 API 模块 ## 技术栈 - Node.js Express - TypeScript - MongoDB Mongoose ## 文件结构src/├── modules/│ └── user/│ ├── user.model.ts # 数据模型│ ├── user.controller.ts # 控制器│ ├── user.service.ts # 业务逻辑│ ├── user.routes.ts # 路由定义│ ├── user.dto.ts # 数据传输对象│ ├── user.validator.ts # 参数验证│ └── user.test.ts # 单元测试## API 接口 | 方法 | 路径 | 功能 | 认证 | |------|------|------|------| | GET | /users | 获取用户列表 | 需要 | | GET | /users/:id | 获取单个用户 | 需要 | | POST | /users | 创建用户 | 管理员 | | PUT | /users/:id | 更新用户 | 本人/管理员 | | DELETE | /users/:id | 删除用户 | 管理员 | ## 要求 - 遵循 RESTful 规范 - 使用中间件进行认证和授权 - 完善的错误处理 - 分页和筛选功能代码模板生成# 使用模板生成代码 请基于以下模板创建新的 API 端点 ## 模板文件 读取 src/templates/controller.template.ts ## 替换变量 - {{MODULE_NAME}}: Order - {{MODULE_NAME_LOWER}}: order - {{PRIMARY_KEY}}: orderNumber ## 生成文件 - src/modules/order/order.controller.ts ## 补充内容 - 添加订单状态枚举 - 添加商品明细子文档代码重构提示词# 重构现有代码 请重构 src/utils/parser.js 文件 ## 当前问题 1. 回调地狱代码难以阅读 2. 没有错误处理 3. 全局变量污染 4. 缺少类型定义 ## 重构目标 1. 使用 async/await 替代回调 2. 添加 try-catch 错误处理 3. 使用模块化设计 4. 转换为 TypeScript ## 约束 - 保持 API 兼容性 - 不修改外部依赖 - 添加单元测试覆盖 ## 输出 1. 重构后的代码 2. 变更说明文档 3. 迁移指南调试与分析提示词错误诊断# 诊断运行时错误 ## 错误信息TypeError: Cannot read property ‘id’ of undefinedat UserController.findById (src/controllers/user.js:45:20)## 相关代码 读取 src/controllers/user.js 第 40-50 行 ## 分析要求 1. 解释错误原因 2. 指出具体问题代码 3. 提供修复方案 4. 添加防御性编程建议性能分析# 性能问题诊断 ## 问题描述 API 响应时间从 100ms 增加到 3s ## 分析任务 1. 分析以下代码的性能瓶颈 2. 使用 console.time 或 performance API 测量关键路径 3. 提供优化建议 ## 相关代码 读取 src/services/report.service.js ## 数据规模 - 用户表100 万条 - 订单表500 万条 - 报表生成涉及 10 张表的关联查询 ## 要求 - 输出分析报告Markdown 格式 - 标注时间复杂度 - 提供优化后的代码代码审查# 执行代码审查 请对 src/handlers/payment.ts 进行代码审查 ## 审查维度 1. **安全性** - SQL 注入、XSS、敏感数据处理 2. **性能** - 算法复杂度、内存使用 3. **可维护性** - 代码结构、命名规范 4. **最佳实践** - 是否遵循框架规范 5. **测试覆盖** - 测试是否充分 ## 输出格式 markdown ## 代码审查报告 ### 严重问题 | 位置 | 问题 | 风险 | 建议 | |------|------|------|------| | ... | ... | ... | ... | ### 需改进 | 位置 | 问题 | 建议 | |------|------|------| | ... | ... | ... | ### 良好实践 - ...### 日志分析 markdown # 分析日志文件 ## 日志文件 读取 logs/error-2024-01-15.log ## 分析任务 1. 统计错误类型分布 2. 找出高频错误 TOP 10 3. 分析错误发生的时间规律 4. 提供修复建议 ## 输出 1. 错误统计表格 2. 时间分布图ASCII 图 3. 根因分析和建议依赖分析# 分析项目依赖 ## 任务 分析 package.json 中的依赖 1. 列出过时的依赖及最新版本 2. 识别安全漏洞npm audit 3. 找出未使用的依赖 4. 检测重复依赖 ## 输出 | 依赖名 | 当前版本 | 最新版本 | 安全状态 | 使用情况 | 建议 | |--------|----------|----------|----------|----------|------| | ... | ... | ... | ... | ... | ... |高级提示词技巧1. 链式提示词将复杂任务分解为一系列连贯的提示词。# 第一步分析 分析 src/api/ 目录下的所有 API 端点 列出每个端点的认证要求和权限级别。 # 第二步规划基于第一步结果 根据分析结果设计统一的认证中间件架构。 # 第三步实现基于第二步规划 实现认证中间件并为每个端点添加认证注解。 # 第四步验证 编写测试用例验证所有认证场景。2. 上下文注入动态注入项目上下文信息。# 读取项目上下文 ## 先执行 读取项目根目录的 README.md、package.json 和 tsconfig.json ## 然后分析 基于项目配置判断项目类型和使用的框架 为以下组件选择最合适的状态管理方案 - 用户登录状态 - 购物车数据 - 主题设置3. 示例驱动通过示例让 Claude Code 理解期望的输出。# 参考示例生成代码 请参考以下代码风格为 Order 模块编写 Service 类 ## 示例代码 typescript // user.service.ts export class UserService { constructor(private repository: UserRepository) {} async findById(id: string): PromiseUser | null { this.validateId(id); return this.repository.findById(id); } private validateId(id: string): void { if (!id || !/^[a-f\d]{24}$/.test(id)) { throw new ValidationError(Invalid user ID); } } }生成要求使用相同的代码风格包含构造函数注入添加私有验证方法使用 TypeScript 类型### 4. 约束驱动 明确约束条件确保输出质量。 markdown # 带约束的代码生成 请编写一个用户注册函数 ## 功能约束 - 用户名4-20 字符仅字母数字下划线 - 密码至少 8 位包含大小写和数字 - 邮箱验证格式有效性 ## 技术约束 - 使用 TypeScript 严格模式 - 不使用 any 类型 - 所有异步操作必须有错误处理 - 使用 zod 进行参数验证 ## 输出约束 - 代码不超过 50 行 - 必须包含类型定义 - 必须包含单元测试5. 多视角分析从不同角度分析同一问题。# 多维度分析方案 请从以下角度分析我准备采用的微服务架构方案 ## 角度 1开发效率 - 服务拆分对开发流程的影响 - 团队协作模式的变化 - 部署和调试复杂度 ## 角度 2系统性能 - 服务间通信开销 - 数据一致性保证 - 缓存策略调整 ## 角度 3运维成本 - 基础设施需求 - 监控和日志管理 - 故障排查难度 ## 角度 4业务适配 - 当前业务规模是否适合 - 未来扩展的灵活性 - 迁移风险和成本 ## 输出 一份综合评估报告包含 1. 各维度评分1-10 2. 关键风险点 3. 最终建议6. 思维链提示引导 Claude Code 展示思考过程。# 带思维链的问题求解 请解决以下算法问题并展示你的思考过程 ## 问题 给定一个整数数组找出三个数使它们的和最接近目标值。 ## 要求 分步骤思考 1. 分析问题本质 2. 考虑可能的解法 3. 评估每种解法的复杂度 4. 选择最优解法并实现 5. 测试边界情况 请使用以下格式思考过程问题分析…解法思路…复杂度分析…最优解选择…代码实现…测试用例…7. 增量式开发逐步添加功能每次专注于一个方面。# 增量式功能开发 ## 第一阶段核心功能 创建一个简单的 TODO 列表组件 - 显示待办事项列表 - 添加新事项 ## 第二阶段增强功能基于第一阶段 添加以下功能 - 标记完成/未完成 - 删除事项 - 本地存储持久化 ## 第三阶段高级功能基于第二阶段 添加以下功能 - 分类和标签 - 搜索和筛选 - 拖拽排序 每个阶段完成后等待确认再继续下一阶段。8. 自我修正让 Claude Code 检查自己的输出。# 带自我检查的代码生成 请编写一个 JSON 解析器 ## 步骤 1. 先生成初始代码 2. 然后检查以下方面 - 是否处理了所有边界情况 - 错误处理是否完善 - 是否有性能问题 3. 如果发现问题修正代码 4. 输出最终版本和修改说明 ## 自检清单 - [ ] 空字符串处理 - [ ] 嵌套对象处理 - [ ] 数组处理 - [ ] 特殊字符转义 - [ ] 数字精度 - [ ] 错误消息清晰9. 模式匹配使用已知模式快速生成代码。# 基于模式生成代码 请识别以下代码的设计模式然后为通知模块创建类似的实现 ## 参考代码 typescript // 支付处理器 - 策略模式 interface PaymentStrategy { pay(amount: number): PromisePaymentResult; } class AlipayStrategy implements PaymentStrategy { async pay(amount: number) { /* ... */ } } class WechatPayStrategy implements PaymentStrategy { async pay(amount: number) { /* ... */ } } class PaymentProcessor { constructor(private strategy: PaymentStrategy) {} process(amount: number) { return this.strategy.pay(amount); } }目标创建通知模块支持邮件通知短信通知推送通知请使用相同的模式保持代码风格一致。### 10. 文档驱动开发 从文档/接口定义开始编写代码。 markdown # 文档驱动开发 ## 第一步阅读 API 文档 读取 docs/api-spec.yaml 文件 ## 第二步生成类型定义 根据 OpenAPI 规范生成 TypeScript 类型 - 请求类型 - 响应类型 - 错误类型 ## 第三步实现 API 层 - 创建 HTTP 客户端封装 - 实现各个 API 方法 - 添加错误处理 ## 第四步编写使用示例 为每个 API 编写使用示例代码 ## 输出 1. src/types/api.ts - 类型定义 2. src/api/client.ts - HTTP 客户端 3. src/api/index.ts - API 方法 4. examples/api-usage.ts - 使用示例提示词模板库功能开发模板# 功能开发请求 ## 功能描述 [简明扼要描述需要开发的功能] ## 业务背景 [为什么需要这个功能解决什么问题] ## 技术要求 - 框架/语言[指定技术栈] - 数据库[数据库类型] - 第三方依赖[需要的库] ## 验收标准 - [ ] 功能完整性 - [ ] 代码质量 - [ ] 测试覆盖 - [ ] 文档完善 ## 参考资源 - 设计文档[链接] - API 文档[链接] - 参考实现[链接]Bug 修复模板# Bug 修复请求 ## 问题描述 [简明描述问题现象] ## 复现步骤 1. [步骤 1] 2. [步骤 2] 3. [步骤 3] ## 期望行为 [描述正确的行为应该是什么] ## 实际行为 [描述当前的错误行为] ## 环境信息 - 操作系统[OS] - Node 版本[版本] - 项目版本[版本] ## 相关代码 [文件路径或代码片段] ## 错误日志[粘贴错误日志]代码重构模板# 代码重构请求 ## 重构目标 [描述重构要达到的目标] ## 当前代码 读取 [文件路径] ## 问题分析 1. [问题 1] 2. [问题 2] 3. [问题 3] ## 重构方案 [描述重构的具体方案] ## 约束条件 - 保持 API 兼容性[是/否] - 性能要求[描述] - 时间限制[描述] ## 验证方式 - [ ] 单元测试通过 - [ ] 集成测试通过 - [ ] 性能对比最佳实践总结Do ✅具体而非抽象- 提供具体的文件路径、函数名、技术栈分步骤- 复杂任务分解为明确的步骤给示例- 展示你期望的输出格式和代码风格设边界- 明确告诉 Claude Code 什么不该做要验证- 要求 Claude Code 自我检查输出质量Don’t ❌不要模糊- “优化代码”、“改进性能” 太模糊不要过度复杂- 一个提示词解决一个问题不要忽略上下文- 始终提供足够的背景信息不要假设- 不要假设 Claude Code 了解你的项目不要放弃控制- 审查 Claude Code 的输出再做决定结语提示词工程是一门实践艺术。随着你与 Claude Code 的协作越来越深入你会发展出自己独特的提示词风格。记住好的提示词 清晰的意图 足够的上下文 明确的约束持续迭代你的提示词它们就是你的编程工具的一部分。