J'Blog

11 课 · 日常

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

Claude Code 最佳实践

原文:Best practices for Claude Code

一句话

掌握 Claude Code 的最佳实践,提高编程效率和代码质量。

什么时候翻这页

  1. 开始使用 Claude Code 进行开发
  2. 遇到上下文窗口限制问题
  3. 需要提高与 Claude 的沟通效率
  4. 想要扩展 Claude Code 的功能

核心概念

  • 代理编程环境(agentic coding environment):Claude Code 可以主动读取文件、运行命令、进行更改,而不是被动回答问题
  • 上下文窗口(context window):存储整个对话、文件内容和命令输出的有限空间,会快速填满,性能会随着填满而下降
  • 验证机制:让 Claude 能够自动检查工作是否完成,形成闭环
  • 计划模式(plan mode):分离探索和执行的阶段,避免解决错误问题
  • CLAUDE.md:特殊文件,提供持久上下文,Claude 在每个会话开始时读取
  • 技能(skills):扩展 Claude 知识的领域特定信息和可重用工作流
  • 子代理(subagents):在独立上下文中运行的专业助手,用于隔离任务

怎么做

1. 给 Claude 提供验证工作的方法

  • 提供可运行的检查:测试、构建、截图对比等
  • 决定验证的严格程度:
    • 在单个提示中要求运行检查并迭代
    • 使用 /goal 条件作为会话级别的验证
    • 使用停止钩子(Stop hook)作为确定性门控
    • 使用验证子代理或动态工作流进行二次确认

2. 遵循探索、规划、编码、提交的工作流程

  • 探索:使用计划模式,让 Claude 读取文件并回答问题而不做更改
  • 规划:要求 Claude 创建详细的实施计划,可按 Ctrl+G 在编辑器中编辑
  • 实现:退出计划模式,让 Claude 根据计划编码并验证
  • 提交:要求 Claude 提交并创建 PR

3. 在提示中提供具体上下文

  • 明确任务范围:指定文件、场景和测试偏好
  • 指向信息源:直接引导 Claude 查找答案
  • 引用现有模式:指向代码库中的模式示例
  • 描述症状:提供问题、可能位置和"修复"后的样子

4. 配置环境

  • 编写有效的 CLAUDE.md
    • 运行 /init 生成初始文件
    • 包含 Bash 命令、代码风格和工作流规则
    • 保持简洁,只包含 Claude 无法推断的内容
    • 可以导入其他文件使用 @path/to/import 语法
  • 配置权限
    • 使用自动模式(auto mode)让分类器处理审批
    • 使用 /permissions 允许特定命令
    • 使用 /sandbox 进行操作系统级隔离
  • 使用 CLI 工具:告诉 Claude 使用 ghawsgcloud 等工具
  • 连接 MCP 服务器:运行 claude mcp add 连接外部工具
  • 设置钩子:使用 .claude/settings.json 配置必须每次执行的脚本
  • 创建技能:在 .claude/skills/ 中创建 SKILL.md 文件
  • 创建自定义子代理:在 .claude/agents/ 中定义专业助手
  • 安装插件:运行 /plugin 浏览市场

5. 有效沟通

  • 询问代码库问题:像询问高级工程师一样提问
  • 让 Claude 采访你:对于大型功能,让 Claude 使用 AskUserQuestion 工具详细采访你

6. 管理会话

  • 及时纠正
    • Esc 停止 Claude 的操作
    • Esc + Esc 或运行 /rewind 打开回退菜单
    • 使用 "Undo that" 让 Claude 撤销更改
    • 使用 /clear 重置上下文
  • 积极管理上下文
    • 在不相关任务之间使用 /clear 重置上下文
    • 使用 /compact <instructions> 控制压缩行为
    • 使用 /btw 发送不进入上下文的快速问题
  • 使用子代理进行调查:委托研究任务,保持主对话清洁
  • 使用检查点回退:每个提示都会创建检查点,可以恢复对话、代码或两者
  • 恢复对话:使用 /rename 命名会话,像分支一样对待

7. 自动化和扩展

  • 运行非交互模式:使用 claude -p "prompt" 在 CI、预提交钩子或脚本中运行
  • 运行多个 Claude 会话:并行运行多个会话加速开发或运行隔离实验
  • 跨文件扩展:循环调用 claude -p 处理大量文件
  • 自主运行:使用自动模式进行不间断执行
  • 添加对抗性审查步骤:在子代理中审查差异,报告差距

命令 / 配置速查

命令功能
/init生成初始 CLAUDE.md 文件
/clear重置上下文
/rewind打开回退菜单
/btw发送不进入上下文的快速问题
/goal设置目标条件
/permissions配置权限
/hooks查看配置的钩子
/skill-name调用特定技能
/plugin浏览插件市场
claude -p "prompt"非交互模式运行
claude --continue继续最近的会话
claude --resume选择要恢复的会话

初学者易错点

  1. 不及时纠正错误,导致上下文被失败的尝试污染
  2. CLAUDE.md 文件过于冗长,导致重要指令被忽略
  3. 不提供验证机制,无法确保工作质量
  4. 在不相关任务之间不重置上下文
  5. 过度规划简单任务,降低效率

相关词条

  • how-claude-code-works 了解 Claude Code 的工作原理
  • features-overview 扩展 Claude Code 功能
  • memory 使用 CLAUDE.md 存储项目约定
  • permission-modes 管理权限模式
  • sub-agents 创建和使用子代理
  • hooks 设置自动化钩子

官方原文:https://code.claude.com/docs/en/best-practices