Claude Prompt 技巧
掌握与 Claude 对话的技巧,可以显著提升输出质量。本指南介绍实用的 Prompt 工程方法。
基础原则
1. 清晰具体
❌ 模糊请求
帮我写个程序
✅ 清晰请求
用 Python 写一个函数,接收一个字符串列表,
返回其中长度大于 5 的字符串,并按字母排序。
包含类型提示和 docstring。
2. 提供上下文
❌ 缺少上下文
这段代码有什么问题?
✅ 提供上下文
我在开发一个 Next.js 应用,使用 TypeScript。
以下代码在获取用户数据时报错 "undefined is not an object"。
请帮我找出问题:
[粘贴代码]
错误信息:[粘贴错误]
3. 指定格式
❌ 不指定格式
解释一下 React hooks
✅ 指定格式
解释 React hooks,请:
1. 先用一句话总结
2. 列出 5 个最常用的 hooks
3. 每个 hook 给一个简单示例
4. 使用中文
高级技巧
结构化输出与工具调用
- 需要 JSON/表格时,明确 schema,并要求“输出前自检字段完整性”。
- 结合函数调用(Tool Use)可让 Claude 调用你的 API,再汇总结果。API 工具调用指南 →
- 长链任务可分步:先规划,再调用工具,最后总结。
角色设定
让 Claude 扮演特定角色:
你是一位有 10 年经验的高级前端架构师。
请从以下角度审查我的代码:
- 性能优化
- 可维护性
- 最佳实践
- 潜在风险
[粘贴代码]
思维链 (Chain of Thought)
要求分步骤思考:
请分析这个算法问题,要求:
1. 首先理解问题要求
2. 列出可能的解决方案
3. 分析每种方案的时间和空间复杂度
4. 选择最优方案并解释原因
5. 给出完整代码实现
问题:[描述问题]
Few-shot 示例
提供示例让 Claude 学习模式:
将以下句子转换为更专业的表达:
示例 1:
输入:这个功能坏了
输出:该功能存在异常,无法正常运行
示例 2:
输入:我不知道怎么弄
输出:目前尚未找到合适的解决方案
请转换:
输入:这代码写得太烂了
约束条件
明确限制和要求:
请帮我重构这个函数,要求:
- 保持原有功能不变
- 函数行数不超过 20 行
- 使用函数式编程风格
- 不使用任何外部库
- 添加错误处理
[粘贴代码]
编程场景技巧
代码审查
请审查以下代码,关注:
1. **Bug 风险**:可能导致错误的地方
2. **安全问题**:SQL 注入、XSS 等
3. **性能问题**:N+1 查询、内存泄漏等
4. **代码质量**:命名、结构、可读性
对于每个问题,请:
- 指出具体位置(行号)
- 解释问题原因
- 提供修复建议
[粘贴代码]
调试帮助
我遇到了一个 bug,请帮我调试:
**环境**:
- Node.js 20
- Express 4.18
- MongoDB 6.0
**期望行为**:
用户登录后应该返回 JWT token
**实际行为**:
返回 500 错误,日志显示 "Cannot read property 'id' of undefined"
**相关代码**:
[粘贴代码]
**已尝试**:
- 检查了数据库连接(正常)
- 打印了 user 对象(显示 undefined)
学习新技术
我想学习 [技术名称],我的背景:
- 熟悉:JavaScript, React
- 了解:Node.js, SQL
- 目标:能独立开发完整项目
请:
1. 解释核心概念(用我熟悉的技术类比)
2. 给出学习路线图
3. 推荐学习资源
4. 提供一个入门练习项目
写作场景技巧
技术文档
请帮我写一篇技术文档,主题是 [主题]。
要求:
- 目标读者:有 1-2 年经验的开发者
- 长度:约 1000 字
- 结构:问题背景 → 解决方案 → 实现步骤 → 注意事项
- 风格:专业但易懂,避免过于学术化
- 包含代码示例
邮件撰写
请帮我写一封邮件:
背景:我需要向客户解释项目延期的原因
语气:专业、诚恳、积极
要点:
- 延期 2 周
- 原因是发现了安全问题需要修复
- 这对项目质量是好事
- 提供新的时间表
长度:不超过 200 字
常用 Prompt 模板
代码生成模板
请用 [语言] 实现 [功能]。
要求:
- 输入:[描述输入]
- 输出:[描述输出]
- 边界情况:[列出需要处理的边界情况]
- 性能要求:[如有]
请包含:
- 完整代码
- 使用示例
- 简要说明
问题解决模板
我遇到了以下问题:
[描述问题]
环境信息:
[列出相关环境]
我已经尝试了:
[列出已尝试的方法]
请帮我:
1. 分析可能的原因
2. 提供解决方案
3. 解释为什么这样做有效
学习请求模板
请解释 [概念]。
我的背景:[你的技术背景]
我想了解:
- 这是什么?(一句话定义)
- 为什么需要它?(解决什么问题)
- 怎么使用?(基本用法 + 示例)
- 有什么注意事项?
请用简单的语言,避免过于抽象。
避免的做法
不要过于简短
❌ 写个排序算法
✅ 用 Python 写一个快速排序算法,要求处理空列表情况,并添加注释解释每一步
不要假设 Claude 记得之前的对话
❌ 继续上次的代码
✅ 这是我们之前讨论的代码 [粘贴],请继续添加 [功能]
不要一次问太多无关问题
❌ 解释 React hooks,顺便帮我写个 Python 爬虫,还有推荐几本书
✅ 分开问,每次专注一个主题
下一步
- 编程辅助 - 更多编程技巧
- Projects 项目 - 使用 Projects 管理上下文
- Artifacts 工件 - 创建可交互内容
提示:好的 Prompt 需要练习。多尝试,观察结果,不断优化你的提问方式。