最佳实践与速查表
本教程共 34 篇 · 第 34 篇 · 更新于 2026-07-26 · 约 10 分钟阅读
34. 最佳实践与速查表
本节目标:掌握 Claude Code 的高效使用习惯和工作流模式,附完整的命令速查表、术语表和环境变量速查,作为日常使用的案头参考。
到这里,你已经学完了 Claude Code 的核心功能。最后这一章不是新知识点,而是把散落在各章的最佳实践集中起来,加上速查表,方便你日常翻阅。就像开车一样,驾校学的是操作,真正上路后靠的是经验和直觉—这一章就是帮你培养直觉的。
提示词技巧
给 Claude 验证方式
这是最重要的一个习惯。Claude 完成工作后会停下来,如果你没给它验证方式,“看起来完成了”就是唯一信号,你成了验证循环—每个错误都得等你发现。
给它一个能跑的检查:测试套件、构建命令、截图比对。有了检查,循环就能自动闭合:Claude 完成、运行检查、读结果、迭代修复。
# 不好:没有验证方式
实现一个验证邮箱地址的函数
# 好:有明确的验证标准
编写一个 validateEmail 函数。
示例测试用例:user@example.com 为真,invalid 为假,user@.com 为假。
实现后运行测试。
先探索,再规划,最后编码
让 Claude 直接跳到编码,可能产出解决错误问题的代码。推荐四阶段工作流:
- 探索:进入 Plan Mode,让 Claude 读取文件、回答问题,不做任何修改
- 规划:让 Claude 创建详细实现计划
- 实现:退出 Plan Mode,让 Claude 按计划编码
- 提交:让 Claude 提交代码并创建 PR
TipPlan Mode 不是必须的。如果一句话就能描述清楚改动(修拼写、加日志行、重命名变量),直接让 Claude 干。当涉及多文件改动、你不熟悉被改代码、或方法不确定时,规划最有价值。
提示要具体
你的指令越精确,需要的纠正就越少。
| 策略 | 不好 | 好 |
|---|---|---|
| 限定范围 | 为 foo.py 添加测试 | 为 foo.py 编写测试,涵盖用户已注销的边界情况。避免 mock |
| 指向来源 | 为什么 ExecutionFactory 有奇怪的 api | 查看 ExecutionFactory 的 git 历史并总结其 api 如何形成 |
| 参考模式 | 添加日历小部件 | 看 HotDogWidget.php 的实现方式,按相同模式实现日历小部件 |
| 描述症状 | 修复登录错误 | 用户报告会话超时后登录失败。检查 src/auth/ 的 token 刷新。写失败测试重现问题,然后修复 |
丰富你的输入
- 用
@引用文件,而不是描述代码位置 - 直接粘贴图片(截图、设计稿)
- 用
cat error.log | claude管道传数据 - 提供 URL 让 Claude 获取文档
工作流模式
Writer/Reviewer 模式
用两个会话,一个写代码,一个审查:
| 会话 A(Writer) | 会话 B(Reviewer) |
|---|---|
| 实现速率限制器 | |
| 审查 rateLimiter.ts 的实现,查边界情况、竞态条件 | |
| 根据审查反馈修复 |
新鲜的上下文让审查更客观,Claude 不会偏向自己刚写的代码。
子代理调查模式
让子代理在独立上下文里探索代码库,只把摘要返回主对话:
Use subagents to investigate how our authentication system handles
token refresh, and whether we have any existing OAuth utilities.
子代理读取大量文件不会污染你的主上下文。
批量扇出模式
大型迁移任务,循环调用 claude -p:
for file in $(cat files.txt); do
claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
--allowedTools "Edit,Bash(git commit *)"
done
先在 2-3 个文件上测试,调好提示词再大规模运行。
对抗性审查
任务完成前,让子代理在新鲜上下文里审查 diff:
使用子代理根据 PLAN.md 审查速率限制器差异。
检查每个要求是否已实现,边界情况是否有测试,
范围外是否有改动。报告缺陷,不是风格偏好。
会话管理习惯
尽早纠正方向
- Esc:中途停止 Claude,上下文保留,可以重定向
- Esc + Esc 或
/rewind:恢复到之前的对话和代码状态 /clear:不相关任务之间重置上下文
Warning如果你在同一个会话里纠正 Claude 两次以上还没对,上下文已经充满了失败的方法。运行
/clear,用更具体的提示重新开始—干净会话加好提示,几乎总是优于长会话加累积纠正。
积极管理上下文
- 任务之间频繁
/clear - 压缩时指定保留重点:
/compact Focus on the API changes - 在 CLAUDE.md 里写压缩指令:
When compacting, always preserve the full list of modified files - 快速问题用
/btw,答案不进入对话历史
会话命名和恢复
# 给会话起名
/rename oauth-migration
# 继续最近的会话
claude --continue
# 从列表选择恢复
claude --resume
避免常见失败模式
| 失败模式 | 症状 | 修复 |
|---|---|---|
| 厨房水笼头会话 | 一个任务没完又问别的,上下文充满无关信息 | 不相关任务之间 /clear |
| 反复纠正 | 改了两次还不对 | /clear 后写更好的初始提示 |
| 过度指定的 CLAUDE.md | 文件太长,Claude 忽略一半规则 | 无情修剪,Claude 已经会的不用写 |
| 信任但不验证 | 实现看起来合理但不处理边界情况 | 始终提供验证(测试、脚本、截图) |
| 无限探索 | 让 Claude “调查”但不限定范围 | 限定范围或用子代理 |
斜杠命令速查表
会话管理
| 命令 | 作用 |
|---|---|
/clear | 清空上下文,开始新会话 |
/compact [指令] | 压缩对话,可选保留重点 |
/rewind | 回退到之前的检查点 |
/rename | 给当前会话命名 |
/resume | 恢复之前的会话 |
/btw | 问一个不进入历史的快速问题 |
/recap | 生成会话摘要 |
配置与诊断
| 命令 | 作用 |
|---|---|
/config | 打开配置面板 |
/doctor | 诊断安装和配置问题 |
/status | 查看活跃的设置源 |
/context | 查看上下文窗口占用 |
/memory | 查看加载的 CLAUDE.md 和规则 |
/permissions | 查看和管理权限规则 |
/hooks | 查看活跃的 hook 配置 |
/mcp | 查看 MCP 服务器状态 |
/skills | 查看可用的 skills |
/debug [issue] | 启用调试日志 |
模型与成本
| 命令 | 作用 |
|---|---|
/model | 切换模型 |
/effort | 调整推理强度 |
/usage | 查看 token 使用情况 |
/usage-credits | 管理使用额度(Pro/Max) |
功能开关
| 命令 | 作用 |
|---|---|
/chrome | 连接 Chrome 浏览器 |
/plan | 进入 Plan Mode |
/init | 生成初始 CLAUDE.md |
/plugin | 管理插件 |
/loop [指令] | 创建轮询任务 |
/goal [条件] | 设置会话目标 |
/feedback | 向 Anthropic 报告问题 |
CLI 标志速查表
# 基本启动
claude # 交互模式
claude "任务描述" # 一次性任务
claude -c # 继续最近会话
claude --resume # 选择恢复会话
# 非交互模式
claude -p "提示词" # 打印模式,输出后退出
claude -p "提示词" --output-format json # JSON 输出
claude -p "提示词" --output-format stream-json --verbose # 流式 JSON
# 模式与权限
claude --permission-mode auto # Auto 模式
claude --safe-mode # 安全模式(禁用自定义)
claude --bare # 裸模式(最小启动)
# 其他
claude --chrome # 启用 Chrome 集成
claude --add-dir ../shared # 添加额外目录访问
claude --model sonnet # 指定模型
claude doctor # 诊断安装
claude --version # 查看版本
核心术语表
| 术语 | 含义 |
|---|---|
| 智能体(Agent) | 能自主读取文件、运行命令、做出改变的 AI,不只是回复文本 |
| 代理循环(Agentic Loop) | Claude 为每个任务经历的循环:收集上下文、行动、验证、重复 |
| 上下文窗口(Context Window) | 会话的工作内存,保存对话历史、文件内容、命令输出等 |
| 压缩(Compaction) | 上下文接近上限时,自动总结对话历史释放空间 |
| 子代理(Subagent) | 在独立上下文中运行的专门助手,处理委派任务后返回摘要 |
| 钩子(Hook) | 在生命周期特定点自动执行的处理程序,确定性触发 |
| 技能(Skill) | SKILL.md 文件,包含指令或工作流,按需加载 |
| 插件(Plugin) | 将 skills、hooks、子代理和 MCP 服务器打包的可安装单元 |
| 斜杠命令(Slash Command) | 用 /name 调用的可重用指令 |
| 沙箱(Sandbox) | Bash 工具的操作系统级文件系统和网络隔离 |
| 检查点(Checkpoint) | 每次提示创建的还原点,可恢复对话和代码状态 |
| 权限模式(Permission Mode) | 会话的基线批准行为:default、plan、auto 等 |
| MCP(Model Context Protocol) | 连接 AI 到外部数据源的开放标准 |
| 项目指令文件(CLAUDE.md) | 你为 Claude 编写的持久指令,每次会话开始时加载 |
| 设置文件(settings.json) | Claude Code 的配置文件,控制权限、hooks、环境变量等 |
| 自动内存(Auto Memory) | Claude 根据你的纠正为自己写的笔记 |
| 远程控制(Remote Control) | 从手机或浏览器继续本地 Claude Code 会话 |
| Prompt Caching | API 重用已处理内容,减少重复计算,更快更省钱 |
| Effort Level | 控制每个回合的思考预算,更高=更深推理,更低=更快更省 |
| 扩展思考(Extended Thinking) | 模型响应前的可见逐步推理 |
环境变量速查
认证与模型
| 变量 | 作用 |
|---|---|
ANTHROPIC_API_KEY | API 密钥,设置后覆盖订阅认证 |
ANTHROPIC_AUTH_TOKEN | 自定义 Bearer 令牌 |
ANTHROPIC_BASE_URL | 覆盖 API 端点(用于代理或第三方 API) |
ANTHROPIC_MODEL | 指定使用的模型 |
ANTHROPIC_SMALL_FAST_MODEL | 后台任务用的轻量模型(已弃用) |
MAX_THINKING_TOKENS | 限制思考 token 预算 |
第三方模型映射
Warning以下配置属社区/第三方方案,非 Anthropic 官方推荐。使用时代码和对话会经过第三方服务器,安全性、稳定性、合规性自行评估。
# 接入 DeepSeek 示例(社区/第三方方案,非官方推荐)
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=你的API_Key
export ANTHROPIC_MODEL=deepseek-v4-pro
export ANTHROPIC_SMALL_FAST_MODEL=deepseek-v4-flash
性能与超时
| 变量 | 作用 |
|---|---|
API_TIMEOUT_MS | API 请求超时(默认 600000ms / 10 分钟) |
BASH_DEFAULT_TIMEOUT_MS | Bash 命令默认超时(默认 120000ms / 2 分钟) |
BASH_MAX_TIMEOUT_MS | Bash 命令最大超时(默认 600000ms / 10 分钟) |
BASH_MAX_OUTPUT_LENGTH | Bash 输出最大字符数 |
功能开关
| 变量 | 作用 |
|---|---|
DISABLE_AUTOUPDATER | 设为 1 禁用自动更新 |
CLAUDE_CODE_AUTO_CONNECT_IDE | 自动连接 IDE |
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | 启用 Agent 团队 |
USE_BUILTIN_RIPGREP | 设为 0 使用系统 ripgrep |
ENABLE_PROMPT_CACHING_1H | 启用 1 小时缓存 TTL |
FORCE_PROMPT_CACHING_5M | 强制 5 分钟缓存 TTL |
代理配置
# HTTP/HTTPS 代理
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
环境变量设置方式
# 方式一:Shell 中临时设置
export API_TIMEOUT_MS="1200000"
claude
# 方式二:写入 shell 配置文件(永久生效)
echo 'export API_TIMEOUT_MS="1200000"' >> ~/.zshrc
# 方式三:写在 settings.json 中
{
"env": {
"API_TIMEOUT_MS": "1200000",
"BASH_DEFAULT_TIMEOUT_MS": "300000"
}
}
Note环境变量优先级:环境变量 > CLI 标志/会话命令 > settings.json。当同一变量在 shell 和 settings.json 的
env块中都设置时,settings.json 的值优先。
CLAUDE.md 编写原则
该写什么
| 该写 | 不该写 |
|---|---|
| Claude 猜不到的 Bash 命令 | 读代码就能搞清楚的东西 |
| 与默认不同的代码风格规则 | 标准语言约定 |
| 测试指令和首选测试运行器 | 详细的 API 文档(改为链接) |
| 仓库礼仪(分支命名、PR 约定) | 经常变化的信息 |
| 项目特定的架构决策 | 长篇解释或教程 |
| 开发环境怪癖 | ”写干净的代码”这种废话 |
| 常见陷阱 | 逐个文件描述代码库 |
保持简洁
对每一行问自己:“删掉这行会导致 Claude 犯错吗?” 如果不会,删掉它。膨胀的 CLAUDE.md 会让 Claude 忽略你的实际指令。
目标控制在 200 行以内。特定工作流的详细指令移到 skills 里,按需加载不占基础上下文。
配置层次速查
设置按优先级从高到低:
- 托管设置(Managed):管理员部署,无法被覆盖
- 命令行参数:
--model、--permission-mode等 - 本地设置:
.claude/settings.local.json(个人,不提交) - 项目设置:
.claude/settings.json(团队,提交到 git) - 用户设置:
~/.claude/settings.json(个人,所有项目)
数组跨层合并,标量值高层覆盖低层。
权限模式速查
| 模式 | 行为 | 适用场景 |
|---|---|---|
| default (Manual) | 每个操作都询问 | 不熟悉的项目,谨慎操作 |
| acceptEdits | 自动接受文件编辑 | 信任 Claude 的代码改动 |
| plan | 只读不改,先出计划 | 探索和规划阶段 |
| auto | 分类器自动审批,阻止危险操作 | 日常开发,减少打断 |
| dontAsk | 不询问,类似 acceptEdits 但更宽 | 需要配合具体 allow 规则 |
| bypassPermissions | 跳过所有权限检查 | Docker 沙箱内使用 |
用 Shift+Tab 在模式间循环切换。
键盘快捷键速查
| 快捷键 | 作用 |
|---|---|
Esc | 停止 Claude 当前操作 |
Esc + Esc | 打开 rewind 菜单 |
Shift+Tab | 切换权限模式 |
Ctrl+G | 在文本编辑器中打开计划 |
Ctrl+C | 取消当前操作 |
@ | 引用文件 |
# | 添加到 CLAUDE.md |
小结
Claude Code 的最佳实践归根结底就几句话:给验证方式让循环自动闭合,先规划再编码避免返工,提示要具体不要让 Claude 猜,上下文是稀缺资源要积极管理,会话之间该清除就清除。 把速查表存到随手可查的地方,用熟了这些就会变成肌肉记忆。
教程到这里就全部结束了。从安装配置到日常使用,从基础功能到高级自动化,从单机开发到团队协作,Claude Code 的能力远不止于此。真正的熟练来自于实践—把这些知识用到你的项目里,在用的过程中培养自己的直觉,你会发现 Claude Code 不只是工具,更像一个靠谱的编程搭档。