Faster Claude

Claude Code 最佳实践

充分利用 Claude Code 的技巧和模式,从配置环境到跨并行会话扩展。

Claude Code 是代理式编码环境。与只回答问题并等待的聊天机器人不同,Claude Code 可以读取文件、运行命令、进行更改,并在您观看、引导或离开时自主完成工作。

大多数最佳实践基于一个约束:Claude 的上下文窗口很快填满,填满后性能会下降。 将持久规则放在 CLAUDE.md 中。无关任务之间使用 /clear。运行 /context 查看占用。

让 Claude 能够验证其工作

包含测试、屏幕截图或预期输出,以便 Claude 自检。这是杠杆最高的一步。

策略之前之后
提供验证标准「实现验证电子邮件地址的函数」「编写 validateEmail。测试:user@example.com → true,invalid → false,user@.com → false。实现后运行测试」
视觉验证 UI「让仪表板更好看」「[粘贴截图] 实现此设计。截图结果并与原图比较,列出差异并修复」
解决根本原因「构建失败」「构建失败并报此错误:[粘贴错误]。修复并验证构建成功,不要压制错误」

让 Claude 展示证据:测试输出、运行的命令或截图 — 不要只断言成功。

先探索,再计划,再编码

将研究与规划与实现分开。

  1. 探索 — 计划模式。阅读 /src/auth 并理解我们如何处理会话和登录。
  2. 计划我想添加 Google OAuth。需要改哪些文件?制定计划。Ctrl+G 编辑计划。
  3. 实现 — 退出计划模式。按你的计划实现 OAuth。写测试、跑套件、修失败。
  4. 提交写好 commit 信息并开 PR

不确定方案、多文件改动或不熟悉代码时,计划最有用。若 diff 一句话能说清,直接让 Claude 做。

在提示中提供具体上下文

策略之前之后
限定范围「给 foo.py 加测试」「为 foo.py 写测试,覆盖用户已登出的边界情况,不要用 mock」
指向来源「ExecutionFactory 的 API 为何这么怪?」「查 ExecutionFactory 的 git 历史并总结 API 如何演变成这样」
引用模式「加日历组件」「参照首页 HotDogWidget.php 的模式,实现带月份选择与年份翻页的日历组件」
描述症状「修登录 bug」「用户反馈会话超时后无法登录。查 src/auth/,尤其 token 刷新。先写失败测试再修」

@ 引用文件。粘贴图片。管道:cat error.log | claude

配置环境

编写有效的 CLAUDE.md

运行 /init 再细化。示例:

# 代码风格
- 使用 ES modules(import/export),不用 CommonJS(require)
- 尽可能解构导入(如 import { foo } from 'bar')

# 工作流
- 一系列代码改动完成后要做类型检查
- 优先跑单个测试,不要整套件,以提升性能
✅ 应包含❌ 应排除
Claude 猜不到的 Bash 命令读代码能推断的内容
与默认不同的代码风格标准语言惯例
测试说明与首选 runner冗长 API 文档(链到文档)
仓库礼仪频繁变化的信息
架构决策逐文件描述代码库
开发环境怪癖「写干净代码」

导入:参阅 @README.md 与 @package.json 中的 npm 命令。

位置:~/.claude/CLAUDE.md(所有项目)、./CLAUDE.md(团队)、./CLAUDE.local.md(个人)、monorepo 父目录。

配置权限

使用 auto 模式、/permissions 白名单或 /sandbox。见 权限模式权限配置

使用 CLI 工具

让 Claude 使用 ghawsgcloudsentry-cli 等。可用 用 'foo-cli-tool --help' 学习 foo 工具

连接 MCP 服务器

claude mcp add 连接 Notion、Figma、数据库、工单系统。

设置 hooks

hooks 在生命周期点确定性运行 — 不同于建议性的 CLAUDE.md。用 /hooks 浏览;可让 Claude 编写「改文件后 lint」等 hook。

创建 skills

.claude/skills/SKILL.md,frontmatter 含 namedescription。有副作用且需手动触发的工作流设 disable-model-invocation: true/skill-name)。

创建自定义子代理

.claude/agents/ 限制工具与专注系统提示。「用子代理审查这段代码的安全问题。」

有效沟通

像问资深工程师一样问代码库:「日志怎么工作?」「这行做什么?」「为何这里调用 foo() 而不是 bar()?」

大功能可先让 Claude 访谈你:

我想做 [简要描述]。用 AskUserQuestion 工具详细访谈我。
问技术实现、UI/UX、边界情况、顾虑与权衡。
访谈充分后把完整规格写到 SPEC.md。

再用新会话执行规格。

管理会话

  • Esc — 中途停止;保留上下文
  • Esc + Esc/rewind — 恢复对话和/或代码
  • /clear — 无关任务间重置
  • 同一问题纠正两次仍失败 → /clear 并用更好的开场提示
  • /compact/compact Focus on the API changes 控制摘要
  • /btw — 快速提问且不增长上下文
  • 子代理用子代理调查 X
  • 检查点 — 可试错;不行就回退(不能替代 git)
  • /renameclaude --resume 处理跨天工作

自动化与扩展

claude -p "Explain what this project does"
claude -p "List all API endpoints" --output-format json
claude -p "Analyze this log file" --output-format stream-json --verbose

在 git worktree 中并行会话。写/审分离:一会话实现,另一会话用干净上下文审查 diff。

迁移扇出:

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
claude --permission-mode auto -p "fix all lint errors"

完成前用子代理或 /code-review 对照计划审查 diff。

避免常见失败模式

  • 大杂烩会话 — 无关任务塞一会话 → 任务间 /clear
  • 反复纠正 — 两次失败后 /clear + 更好开场提示
  • CLAUDE.md 过长 — 删减;必须用 hook 保证的步骤写 hook
  • 无证据就认为完成 — 要求测试输出或命令结果

On this page