使用 Claude 编程完整指南
获得更高代码质量与更准确结果 · 适用于 Claude Sonnet 4.6 / Opus 4.6
使用 Claude 编程指南 4.6.pdf
目录
1. 对话 vs 项目——核心区别
理解两者的区别是高效使用 Claude 的第一步。
| 维度 | 💬 对话(Chat) | 📁 项目(Project) |
|---|---|---|
| 记忆范围 | 仅限本次会话,关闭后清空 | 跨对话持久保存,长期有效 |
| 系统提示词 | 无(或每次手动粘贴) | 可设置项目级提示,始终自动生效 |
| 上传文件 | 仅当前对话可见 | 文件持久存储,所有对话共享 |
| 适用场景 | 一次性问答、临时任务 | 长期项目、代码库、团队协作 |
| 推荐用于编程? | 一般性提问 ✓ | 持续开发项目 ✓✓(强烈推荐) |
何时用对话
- 快速验证算法思路
- 询问某个 API 的用法
- 临时的代码转换(如 JSON 格式化)
- 一次性 debug
何时用项目
- 任何持续超过一次会话的开发任务
- 有固定代码库、架构文档需要 Claude 长期理解的项目
- 需要统一编码规范、代码风格的团队项目
- 需要上传 API 文档、数据库 Schema 等参考资料
💡 最佳实践:在项目中上传核心文件(README、架构图、主要模块),Claude 将在整个项目生命周期中持续引用它们。
2. 项目系统提示词
项目系统提示词在每次对话开始时自动注入,Claude 始终知道你的项目背景、技术栈和规范要求。
推荐模板
## 项目背景
本项目是一个基于 FastAPI + PostgreSQL 的 SaaS 后端服务。
Python 3.11,使用 Poetry 管理依赖,部署在 AWS Lambda。
## 编码规范
- 所有函数必须有类型注解(PEP 484)
- 使用 Pydantic v2 做数据验证
- 遵循 Google Python Style Guide
- 测试框架:pytest + pytest-asyncio
## 输出要求
- 直接给出完整可运行代码,不省略任何部分
- 每个函数附带 docstring
- 涉及数据库操作时,同时提供回滚方案系统提示词的关键要素
- 技术栈全貌:语言版本、框架、主要依赖库
- 代码风格:命名规范、注释语言(中/英)、格式化工具
- 输出格式:是否需要测试、文档字符串、错误处理
- 项目约束:不能引入的依赖、性能要求、安全限制
- 团队上下文:独立开发还是需要 Code Review 友好的风格
3. 编写高质量 Prompt
3.1 质量对照表
| 技巧 | ❌ 低质量 | ✅ 高质量 |
|---|---|---|
| 明确语言和框架 | 帮我写个排序函数 | 用 Python 3.11 写一个归并排序函数,需要类型注解和单元测试 |
| 描述约束条件 | 优化这段代码 | 优化时间复杂度,不引入新依赖,保持 API 不变 |
| 指定输出格式 | 解释这个错误 | 解释原因,给出修复代码,并说明如何预防 |
| 分步骤思考 | 重构这个模块 | 先分析现有问题,再提出方案,最后给出完整代码 |
3.2 四段式结构化 Prompt
对于复杂编程任务,推荐使用以下结构:
## 背景(Context)
我正在开发一个电商平台的订单服务,使用 Django 5.0 + DRF。
当前 OrderSerializer 在处理嵌套数据时性能低下(N+1 查询问题)。
## 目标(Goal)
优化订单详情 API 的查询性能,目标响应时间 < 200ms(当前约 800ms)。
## 约束(Constraints)
- 保持现有 API 响应格式不变(不破坏前端)
- 不能使用 Celery 或异步任务(当前架构限制)
- Django ORM only,不写原生 SQL
## 输出要求(Output)
请给出:1) 问题分析 2) 优化后的完整代码 3) 性能对比说明3.3 XML 标签结构化(官方推荐)
对于复杂任务,XML 标签能让 Claude 更精确地解析你的意图:
<task>审查以下认证代码中的安全漏洞</task>
<focus_areas>
- 密码哈希处理
- Session 管理
- SQL 注入风险
</focus_areas>
<context>
医疗健康应用,需符合 HIPAA 合规要求
</context>
<output_requirements>
- 列出每个漏洞及其严重级别
- 提供修复后的代码示例
- 按业务影响优先排序
</output_requirements>
<code>
[粘贴你的代码]
</code>💡 XML 标签在复杂任务中评分 9/10,简单问题则无需使用。
3.4 正/反例对比(Few-shot Prompting)
提供例子比描述更有效:
请按以下风格写注释:
❌ 不要这样:
# 计算总价
total = price * quantity
✅ 要这样:
# 计算含税总价,税率从配置读取,结果保留2位小数
total = round(price * quantity * (1 + TAX_RATE), 2)
现在为以下函数写注释:
[粘贴你的函数]3.5 角色提示(Role Prompting)
赋予 Claude 特定角色,能显著提升专业度:
以一位有 10 年经验的 Python 架构师身份审查以下代码。
重点关注可扩展性和维护性问题。扮演一名专注于安全的 DevSecOps 工程师,
找出以下 API 接口中所有潜在的安全漏洞。3.6 Prompt 链(Prompt Chaining)
大任务拆分为多步,每步结果作为下一步输入:
第 1 步:"分析这个模块的架构,不要给代码,只给问题清单"
第 2 步:"基于以上问题,给出重构方案,不要给代码,只给方案"
第 3 步:"确认方案后,按方案给出完整重构代码"4. Claude 4.x 的重要行为变化
⚠️ Claude 4.x 模型(Sonnet 4.6、Opus 4.6)相比旧版有重要变化,了解这些能避免很多困惑。
更「字面」执行指令
旧版 Claude:会推断你的意图,自动「超出」你的要求做更多。
Claude 4.x:严格按字面执行,不会自动补充你没要求的内容。
| 场景 | 旧版行为 | 4.x 行为 |
|---|---|---|
| "写一个登录函数" | 自动加上错误处理、日志、注释 | 只写最基础的登录逻辑 |
| "优化这段代码" | 主动重构结构、改进命名 | 只做你描述的优化点 |
解决方法:如果你想要"超出基础"的结果,需要明确说出来:
写一个登录函数。
不要只给基础实现——要包含完整的错误处理、输入验证、
日志记录,并且代码要达到生产可用级别。明确说明「为什么」能提升效果
解释背后的原因,能帮助 Claude 做出更好的判断:
# ❌ 只说要求
所有变量名用英文
# ✅ 说明原因
所有变量名用英文,因为这个项目需要提交给国际团队做 Code ReviewExtended Thinking(深度思考模式)
适用于复杂的架构设计、算法选择、系统设计等场景:
[在 Claude.ai 中开启"Extended Thinking"或"深度思考"开关]
请设计一个支持百万用户的实时消息系统架构。
需要考虑:高可用、水平扩展、消息顺序保证、断线重连。💡 深度思考模式速度较慢,适合一次性的重要架构决策,日常编码任务不需要开启。
5. 获得更高代码质量的技巧
5.1 先分析,后编码
# 第一步
分析这段代码存在哪些问题。不要给代码,只给问题分析。
# 确认分析正确后,第二步
基于你的分析,给出重构后的完整代码。原因:先建立问题模型,再生成方案,避免直接输出表面修复。
5.2 强制完整输出,禁止省略
请给出完整代码。
不要使用「# ... 其余代码保持不变」
或「# 省略其他方法」等占位符。
所有方法都必须有完整实现。5.3 要求自我审查
请以 Senior Engineer 的视角审查你刚才写的代码:
1. 是否有边界条件未处理?
2. 是否存在潜在的性能问题?
3. 是否符合我们的编码规范?
如有问题,直接给出修正版本。5.4 提供充分上下文
修改现有功能时,始终提供:
- 相关函数的完整代码(不要只截取片段)
- 调用方式或测试用例
- 期望的输入/输出示例
- 完整的错误 stack trace(如果是 bug)
5.5 明确告诉 Claude 不要过度设计
Claude Opus 4.6 有时会过度工程化,添加不必要的抽象:
保持解决方案简单直接。
不要添加我没有要求的抽象层、设计模式或扩展性设计。
只解决当前问题。6. 高效调试
6.1 标准化错误报告格式
【环境】Python 3.11, FastAPI 0.104, Ubuntu 22.04
【操作】调用 POST /api/orders 接口
【期望】返回 201 Created 和订单 ID
【实际】返回 500 错误,完整 traceback:
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation)
null value in column "user_id" violates not-null constraint
[SQL: INSERT INTO orders (product_id, amount) VALUES (%s, %s)]6.2 引导式调试(比直接问「为什么」更快)
我怀疑问题出在数据库事务的提交时机上。
我的推断过程:[你的分析]
请告诉我这个推断是否正确。
如果错误,请指出真正原因。6.3 逐步缩小范围
- 先问「这个错误最可能的 3 个原因是什么?」
- 根据回答添加日志或断点,获得更多信息
- 再次提问时附上新信息,逐步聚焦
6.4 代码解释辅助调试
逐行解释这段代码的执行逻辑,
重点说明每个变量在第 X 行之后的状态变化。7. 长期项目上下文管理
7.1 上传到项目的核心文件
README.md(项目概览、安装、使用说明)- 架构图或模块划分说明
- 数据库 Schema(ERD 或 models.py)
- API 文档或 OpenAPI spec
- 编码规范文档(如 CONTRIBUTING.md)
7.2 维护 CLAUDE_NOTES.md
在项目根目录维护一个给 Claude 看的笔记文件:
# 已解决的关键问题
- [2024-01] 订单查询 N+1 问题:使用 select_related 解决
- [2024-02] Redis 连接池耗尽:调整 max_connections=50
# 已知限制(不要再尝试)
- 不能用 async SQLAlchemy(当前连接池不支持)
- 不能升级 Pydantic 到 v3(依赖冲突)
# 架构决策记录(ADR)
- 使用 UUID 而非自增 ID:原因是多数据中心同步需求
- 选择 Celery 而非 RQ:原因是需要定时任务支持💡 每次开启新对话时,将此文件内容粘贴给 Claude,可以避免重复踩坑。
7.3 对话过长时的处理
当单次对话超过 20-30 轮时,Claude 对早期上下文的记忆会衰减:
- 新建对话,重新粘贴系统提示词
- 用一段话总结上次对话的结论和当前状态
- 只保留最相关的代码片段,而非完整文件
【继续上次任务】
上次对话结论:已完成用户认证模块,采用 JWT + Redis 方案。
当前任务:现在需要实现权限控制中间件。
相关代码如下:[粘贴关键部分]8. 高频指令速查表
| 场景 | 推荐指令 |
|---|---|
| 需要完整代码 | 给出完整实现,不要使用任何省略占位符 |
| 代码审查 | 以 Senior Engineer 视角找出所有潜在问题 |
| 性能优化 | 分析时间/空间复杂度,给出优化版本并对比 |
| 写单元测试 | 为以上代码写 pytest 单元测试,覆盖正常流程和边界条件 |
| 解释代码 | 逐行解释,重点说明设计意图而非语法 |
| 重构建议 | 不改变功能,重构以提高可读性和可维护性 |
| 安全审查 | 从安全角度审查,找出 SQL 注入、XSS、认证绕过等风险 |
| 先分析后编码 | 先只给问题分析,确认后再给代码 |
| 防止过度设计 | 保持简单,只解决当前问题,不添加未要求的功能 |
| 强制超出基础 | 给出生产可用级别的代码,包含完整错误处理和日志 |
| 架构设计 | [开启 Extended Thinking] 请分析权衡利弊后给出推荐方案 |
附:Prompt 模板收藏
新功能开发
## 背景
[项目和技术栈描述]
## 需求
实现 [功能名称],具体要求:
- [要求1]
- [要求2]
## 约束
- [约束1:不能/必须...]
- [约束2]
## 输出
请给出完整代码,包含:类型注解 / docstring / 错误处理 / 单元测试Bug 报告
【环境】[语言版本, 框架版本, 操作系统]
【操作】[触发步骤]
【期望】[应该发生什么]
【实际】[实际发生什么 + 完整错误信息]
【相关代码】[粘贴]代码审查
以 Senior Engineer 身份审查以下代码。
关注:可读性 / 性能 / 安全性 / 边界条件 / 可测试性。
发现问题后,直接给出修正后的完整代码,不要只给建议。
[粘贴代码]基于 Anthropic 官方文档整理 · Claude Sonnet 4.6 / Opus 4.6 · 2026
最后一次更新于2026-03-06

