最佳实践
Best Practices
本章汇总了 Claude Code 的使用技巧和最佳实践,帮助你更高效地使用这个工具。
提示词技巧
结构化提示词
使用"上下文 → 目标 → 约束"三段式结构编写提示词:
上下文:这是一个 Next.js 14 项目,使用 App Router 和 TypeScript
目标:创建一个用户认证模块,支持 OAuth2 和邮箱登录
约束:
- 使用 next-auth v5
- 不要使用 Pages Router
- 所有组件使用 Server Components,除非必须使用客户端交互提供具体的上下文
❌ "帮我修复这个 bug"
✅ "src/auth.ts 第 45 行的 getUserById 函数在用户不存在时返回 undefined 而不是抛出错误,导致下游组件崩溃。请修复并添加适当的错误处理。"分步骤拆解复杂任务
❌ "重构整个项目"
✅ "我需要将这个项目从 JavaScript 迁移到 TypeScript。让我们分步进行:
1. 先处理 src/utils/ 目录下的工具函数
2. 然后处理 src/components/ 下的组件
3. 最后更新 tsconfig.json 和 package.json"上下文管理
常用 /clear 保持清洁
上下文窗口是有限资源。完成一个任务后,使用 /clear 清除上下文再开始下一个任务:
> /clear
> 新的任务描述...善用 /compact
当对话变长时,手动触发压缩保留关键信息:
> /compact 保留当前的实现方案和已完成的步骤列表会话恢复
bash
# 继续最近的对话
claude -c
# 从历史会话恢复
claude -r工作流策略
先规划后执行
对于复杂任务,使用 Plan → Auto 两步工作流:
- Plan 模式(Shift+Tab 切换):让 Claude 分析任务,输出详细计划
- 审核计划,确认方向正确
- Auto 模式(Shift+Tab 切换):让 Claude 执行计划
[Plan 模式]
> 分析一下如何给这个项目添加国际化支持
[审核计划后切换到 Auto 模式]
> 按照刚才的计划执行反馈循环
提供反馈可以显著提升结果质量(2-3 倍提升):
- 截图反馈:让 Claude 看到 UI 渲染结果
- 测试反馈:运行测试并将结果反馈给 Claude
- 错误反馈:将错误信息粘贴给 Claude
> 运行 npm test,将结果反馈给我,然后修复失败的测试利用 SubAgent 并行化
对于可以并行处理的任务,让 Claude 使用 SubAgent:
> 请并行搜索以下内容:
> 1. 项目中所有的 API 端点
> 2. 所有使用 deprecated API 的代码
> 3. 缺少错误处理的函数CLAUDE.md 编写技巧
保持简洁
CLAUDE.md 在每次对话中都会被加载,内容越多消耗的 Token 越多。
markdown
# 好的 CLAUDE.md(简洁、关键)
## 项目
- Next.js 14 + TypeScript + Tailwind
- 包管理器:pnpm
## 规范
- 组件使用 PascalCase
- 工具函数使用 camelCase
- 测试文件与源文件同目录
## 常用命令
- pnpm dev — 启动开发服务器
- pnpm test — 运行测试
- pnpm lint — 检查代码规范Skills 优于长指令
如果某个指令只在特定场景需要,用 Skill 而不是 CLAUDE.md:
❌ 在 CLAUDE.md 中放 200 行代码审查清单
✅ 创建 .claude/skills/review/SKILL.md 按需加载分层管理
| 层级 | 文件位置 | 内容 |
|---|---|---|
| 用户级 | ~/.claude/CLAUDE.md | 个人偏好(语言、风格) |
| 项目级 | 项目根/CLAUDE.md | 项目架构、规范、团队约定 |
| 本地级 | .claude/CLAUDE.md | 个人开发配置(不提交 Git) |
安全实践
权限配置
json
{
"permissions": {
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force*)"
],
"ask": [
"Bash(git *)",
"Write(*.env*)"
],
"allow": [
"Read",
"Glob",
"Grep"
]
}
}不提交敏感信息
确保 .gitignore 包含:
gitignore
.claude/settings.local.json
.claude/CLAUDE.md # 本地级(如包含个人配置)
.env
.env.local成本控制
选择合适的模型
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 复杂架构设计 | Opus 4.6 | 最强推理能力 |
| 日常开发 | Sonnet 4.6 | 速度与质量平衡 |
| 简单任务/CI | Haiku 4.5 | 最低成本 |
减少 Token 消耗
- 及时 /clear — 完成任务后清除无关上下文
- 使用 /compact — 压缩长对话
- 精确的提示词 — 减少来回沟通
- 使用 Skills — 按需加载,不常驻上下文
- 查看费用 —
/cost查看当前会话费用
监控使用量
bash
# 查看当前会话费用
> /cost
# 设置最大轮次限制
claude --max-turns 20团队协作
共享配置
将以下文件提交到 Git 仓库:
CLAUDE.md— 项目级规范.claude/settings.json— 项目级设置.claude/skills/— 团队技能.mcp.json— MCP 服务器配置
统一工作流
在 CLAUDE.md 中定义团队工作流:
markdown
## 开发流程
1. 创建功能分支:feature/xxx
2. 开发完成后运行 pnpm test
3. 使用 /commit 提交(遵循 Conventional Commits)
4. 使用 /pr 创建 Pull Request
5. 等待 CI 通过和 Code Review常见误区
| 误区 | 正确做法 |
|---|---|
| 一次给太多任务 | 拆分为多个独立任务 |
| 不检查 Claude 的输出 | 审查生成的代码 |
| 忽略上下文管理 | 定期 /clear 和 /compact |
| CLAUDE.md 写太多内容 | 精简,详细指令放 Skills |
| 所有任务都用 Opus | 按需选择模型 |
| 不使用 Plan 模式 | 复杂任务先规划 |