跳到主要内容

Claude Code 的最佳实践

Claude Code 的最佳实践涵盖了从基础配置到高级自动化和并行扩展的方方面面。以下是根据提供的资料整理的完整指南:

一、 核心原则:上下文与验证管理

Claude Code 的核心挑战在于其上下文窗口。随着对话增长,性能会因窗口填满而下降。

  1. 激进的上下文管理
    • 原则:在处理不相关的任务之间使用 /clear 重置上下文。
    • 示例:完成登录模块的调试后,在开始开发支付功能前运行 /clear
  2. 提供验证手段
    • 原则:这是提升效率最关键的一点。为 Claude 提供测试用例、截图或预期输出。
    • 示例:不要只说“实现邮件验证”,而要说:“编写 validateEmail 函数,包含测试用例:[email protected] 为真,invalid 为假,运行测试并确认通过”。
  3. 使用子代理(Subagents)隔离调查
    • 原则:让子代理在独立上下文中读取文件,主对话仅接收摘要,防止主上下文被大量文件内容淹没。
    • 示例:输入“使用子代理调查身份验证系统如何处理令牌刷新”,让它研究后汇报结果。

二、 工作流最佳实践:先规划,后编码

为了避免 Claude 解决错误的问题,应将探索、规划与执行分开。

  1. 四阶段工作流
    • 探索(Explore):进入 Plan Mode,让 Claude 阅读文件并理解逻辑。
    • 规划(Plan):让 Claude 创建详细的实施方案。使用 Ctrl+G 在编辑器中直接编辑该计划。
    • 实现(Implement):切换回 Normal Mode 进行编码,并根据计划进行验证。
    • 提交(Commit):要求 Claude 编写描述性的提交信息并开启 PR。
    • 示例:在添加 Google OAuth 时,先让 Claude 在计划模式下分析 src/auth 目录,制定方案并确认后,再开始编写代码。

三、 环境配置:CLAUDE.md 与权限

通过持久化配置,可以让 Claude 自动遵循项目规范。

  1. 编写高效的 CLAUDE.md
    • 内容:包含项目特有的 Bash 命令、代码风格和工作流规则。
    • 示例:在文件中加入“使用 ES modules (import/export) 语法”或“完成后务必运行类型检查”。
    • 技巧:通过 /init 自动生成初始版本,并定期精简。
  2. 配置权限与沙盒
    • 原则:使用 /permissions 设置允许列表,减少频繁点击确认的干扰。
    • 示例:将 npm run lintgit commit 加入允许列表。

四、 高效沟通与提示词(Prompts)

精准的指令能显著减少校正次数。

  1. 引用特定上下文
    • 技巧:使用 @ 引用文件,或者粘贴报错截图。
    • 示例:输入“参考 @HotDogWidget.php 的模式,实现一个新的日历组件”。
  2. 让 Claude 采访你
    • 原则:在开发大型功能前,先让 Claude 挖掘你没考虑到的细节。
    • 示例:输入“我想构建[描述],请使用 AskUserQuestion 工具深入采访我,包括技术实现、UI/UX 和权衡,直到覆盖所有内容并生成 SPEC.md”。

五、 高级扩展:技能、钩子与 MCP

利用扩展工具打造半自动化的开发环境。

  1. 创建技能(Skills)
    • 原则:将重复的复杂工作流保存为技能。
    • 示例:创建一个 fix-issue 技能,自动执行:查看 issue -> 搜索文件 -> 修复 -> 运行测试 -> 开启 PR。
  2. 设置钩子(Hooks)
    • 原则:在特定事件(如编辑文件后)自动触发脚本。
    • 示例:设置一个钩子,在每次编辑 .ts 文件后自动运行 eslintprettier
  3. 合理使用 MCP 服务器
    • 注意:MCP 会消耗大量上下文。建议配置多个但仅启用必要的(通常少于 10 个)。
    • 示例:在处理数据库时启用 Supabase MCP,在其他任务中将其禁用。

六、 性能与令牌(Token)优化

对于重度用户,优化 Token 消耗能提升响应速度并降低成本。

  1. 模型分级选择
    • 原则:根据任务难度分配模型。
    • 示例:使用 Haiku 进行简单的文件搜索(快速便宜),使用 Opus 处理跨 5 个以上文件的复杂架构决策。
  2. 模块化代码库
    • 优势:单个文件较短时,Claude 每次读取消耗的 Token 更少,且不容易“丢失记忆”。
    • 示例:将上千行的“巨型文件”重构为数百行的独立模块。

七、 并行化与自动化扩展

当单人效率达到上限时,可以横向扩展 Claude 的工作量。

  1. 利用 Git Worktrees 进行并行开发
    • 技巧:为每个任务创建独立的工作区,开启多个 Claude 会话。
    • 示例:在一个 Worktree 中修复 Bug A,在另一个中重构模块 B,两者互不干扰。
  2. 非交互模式(CLI)
    • 示例:使用 claude -p "List all API endpoints" --output-format json 在 CI 脚本或预提交钩子中自动运行 Claude。

八、 持续学习与记忆持久化

避免 Claude 在不同会话中重复同样的错误。

  1. 会话总结与恢复
    • 技巧:在任务跨越多个工作日时,使用 --continue--resume 恢复之前的对话。
  2. 自动提取经验
    • 原则:利用 Stop 钩子 在会话结束时分析学到的模式,并保存为新的技能。
    • 示例:当解决了一个复杂的特定库 Bug 后,使用 /learn 命令手动将该解决方法提取并保存到 ~/.claude/skills/learned/ 目录中。

⚠️ 常见失败模式(应避免)

  • 大杂烩会话:在一个会话里处理多个无关任务,导致上下文被污染。
  • 无效的重复校正:如果连续两次纠正无效,应 /clear 并提供更清晰的初始 Prompt。
  • 过度臃肿的 CLAUDE.md:包含太多 Claude 能自行发现的信息,导致重要规则被忽略。