Claude Code最佳实践教程——使用方法详解

文章目录

本教程旨在为希望深入了解和高效利用 Claude Code 的用户,提供一份全面、详尽、准确、可实操的最佳实践指南。包含 Claude Code 的核心功能、高级工作流、以及提升效率的专业技巧,希望你通过阅读本文彻底掌握“claude code 如何使用”的精髓,实现从入门到精通。

无论你是初次接触“claude code 是什么”,还是希望优化现有的“claude code 使用”策略,这份“claude 教程”都将是你不可或缺的参考资料。

核心概念与入门:初识 Claude Code

Claude Code 是什么?

Claude Code 是 Anthropic 推出的一款命令行工具 (CLI),专为智能体编程 (agentic coding) 设计。它将 Anthropic 最新的模型(如 Opus 4.1 和 Sonnet 4)集成到你的编码工作流中。Claude Code 并不是简单的代码自动补全工具,而是一个对命令行工具非常精通的同事,它从不接触 GUI,擅长使用各种 Bash 命令、Vim 等工具进行操作。

Claude Code 的设计理念是低层级且不固执己见(low-level and unopinionated),提供接近模型的原始访问,不强制特定的工作流程。这种设计使其成为一个灵活、可定制、可脚本化且安全的强大工具。

  • 核心机制:Claude Code 是一个非常纯粹的智能体(pure agent),由指令、强大的工具集组成,并允许模型在一个循环中运行,直到它决定完成任务。
  • 代码库理解:Claude Code 不像一些传统工具那样对整个代码库进行索引和嵌入(RAG 检索),而是通过智能体搜索(agentic search)来探索和理解代码库。它会使用 globgrepfind 等工具,像一个新加入团队的工程师一样,逐步理解项目结构。

为什么选择 Claude Code?

虽然市场上存在许多其他 AI 编码助手,但 Claude Code 因其强大的上下文管理工具调用能力而脱颖而出。

  • 高性能:Claude 模型在编码方面处于 SOTA(State-of-the-Art)水平,Claude Code 是利用这些模型实现智能体能力的最佳工具。
  • 高效的工作流:它能够制定计划、创建待办事项列表(Todo list),并递归地执行任务,例如编写新文件后,记住更新另一个文件以导入新文件。
  • 前瞻性(Proactive):它具有前瞻性,例如,当你要求它删除一个文件中的硬编码值时,它可能会主动在其他文件中查找并删除类似的硬编码值。
  • 经济性:Anthropic 能够以最低的价格提供最大的价值,因为它直接与模型集成,避免了通过转售商购买底层模型的额外成本。

Claude Code 快速入门:安装与启动

安装 Claude Code

Claude Code 的安装通常非常简单。对于 Mac 和 Linux 用户,可能只需要一个命令行。Anthropic 最近也增加了对 Windows 的支持,但资料建议在 Windows 上使用 Linux 子系统(WSL)以获得更好的体验。

启动 Claude Code

在项目目录下运行 claude 命令即可启动一个 REPL(Read-Eval-Print Loop),该实例的作用域仅限于当前项目文件夹及其子文件夹。

CLI 启动命令 (启动前):

  • claude: 启动对会话
  • claude --continue: 持续最近的会话
  • claude --resume: 选择并恢复历史会话
  • 你也可以传入命令行参数,或使用 -p 标志以无头模式 (headless mode) 运行。

首次设置:首次启动时,它会引导你完成设置,包括认证。你可以选择通过 API(按使用量付费)或连接现有 Claude 账户。建议先从较低的付费层级开始,以避免 API 成本失控。

Claude Code 的三种聊天模式

在会话中,你可以随时按 Shift+Tab 切换三种主要的聊天模式:

  1. 默认模式 (Default Mode):你发出指令,Claude 提出更改建议,等待你的权限确认后执行。你可以通过 /output-style 命令要求 Claude 解释其行为原因。
  2. 自动模式 (Auto Mode / Vibe Coder Mode):Claude 无需等待许可即可编辑文件和编写代码,自主工作。出于安全考虑,它仍会请求执行某些 Bash 命令(如安装包)的权限。如果发现 Claude 跑偏,你可以随时按 Esc 键停止进程。
  3. 计划模式 (Plan Mode):在此模式下,Claude 会启动其扩展思考能力来制定全面的策略,但不能实际更改任何文件。它进入“架构师模式”,只能观察、分析和规划,直到你批准并退出此模式执行。

使用计划模式的时机包括:

  • 开始任何新功能开发(非强制性但强烈推荐)。
  • 处理复杂的重构或挑战。
  • 在不确定问题原因时进行调试。
  • 涉及多个组件的架构决策。

Claude Code 的常用会话内命令

以下是 Claude Code 会话中常用的关键命令,熟练掌握这些命令是高效使用“claude code 如何使用”的关键组成部分:

命令用途最佳实践来源
/init生成项目专用的 CLAUDE.md 文件。首次引入 Claude Code 到现有项目时运行。
/clear重置上下文,清除当前会话历史。任务切换时立即执行,以防止上下文窗口因无关信息而膨胀,提高性能并节约 Token。
/compact将当前对话历史总结压缩以节省 Token。当对话过长但不能完全清除上下文时使用,应包含指令说明需要保留的重点信息。
/resume恢复到之前的会话。需要回到之前的工作点时使用。
/review审查指定的 Pull Request 或代码。可用于自动化代码审查流程。
/help查看可用命令列表。-
/model选择模型(Opus 或 Sonnet)。Opus 性能最高,Sonnet 成本和速度效率更高。
/permissions管理允许或拒绝的工具列表。用于配置自定义的自动允许列表。
/hooks配置自定义 Hook 自动化。用于设置确定性自动化,通常比直接编辑 JSON 简单。
Esc中断 Claude 的当前操作(思考、工具调用或文件编辑)。发现跑偏时立即打断并纠正,比让它完成再撤销更高效。
Esc x 2跳回历史记录,编辑上一个提示并重新执行。探索不同方向时很有用。

项目记忆与上下文管理

Claude Code 的成功率很大程度上取决于你提供的上下文质量。高效利用其记忆系统和管理上下文窗口是进阶“claude code 使用”的必备技能。

CLAUDE.md:AI 队友的入职文档

CLAUDE.md 文件是 Claude Code 自动拉取到上下文中的特殊文件,被视为你 AI 队友的入职文档项目记忆库。它在每次对话开始时都会被加载到 Prompt 中。

CLAUDE.md 的推荐内容

CLAUDE.md 是一个理想的文档位置,用于记录:

  • 项目架构和技术栈
  • 代码风格指南(如缩进、命名规范、使用哪种组件类型)。
  • 常用 Bash 命令(如如何构建、如何运行测试)。
  • 测试指令(如优先运行单个测试而不是整个测试套件)。
  • 仓库礼仪(如分支命名、合并与变基的偏好)。
  • 核心文件和实用功能的概述。
  • 开发者环境设置(如 pyenv 使用)。
  • 项目特有的意外行为或警告
  • 不要做的事情(如避免使用 Class Components 或绕过错误边界设置)。

专家建议

  1. 保持简洁和可读性CLAUDE.md 会被添加到 Prompt 中,应保持简洁,并像优化 Prompt 一样对其进行迭代和优化。
  2. 使用 # 快速添加指令:你可以使用 # 键在编码时给出指令,Claude 会自动将其合并到相关的 CLAUDE.md 文件中,方便团队成员受益。
  3. 使用强调词:Anthropic 内部会使用 Prompt 优化工具并添加 “IMPORTANT”“YOU MUST” 等强调词来提高模型对指令的遵循度。

CLAUDE.md 的文件层次结构

Claude Code 支持在不同层级设置 CLAUDE.md 文件,实现知识的层次化组织:

文件位置作用域用途备注
~/.claude/CLAUDE.md全局所有 Claude 会话通用的个人偏好或规则。
[repo_root]/CLAUDE.md项目根目录最常见用法,团队共享的项目规范。推荐提交到 Git 仓库。
[repo_root]/CLAUDE.local.md项目根目录项目特定的个人规则。推荐添加到 .gitignore
任意父目录/子目录多层级适用于 Monorepos 或特定模块(如 frontend/CLAUDE.md)。Claude 会自动拉取相关子目录的上下文。

Claude 读取时会结合所有相关文件,更具体、更深层嵌套的文件会优先于通用文件

附加文档的最佳实践

对于大量文档(如 PRD、架构图、设计原则等),不应全部放入 CLAUDE.md 以避免上下文窗口膨胀。

外部文件引用策略:将这些文档放在独立的 docs/ 文件夹中,然后在 CLAUDE.md引用这些文件(例如使用 @docs/architecture.md)。这样做可以将 Prompt 窗口中包含的内容与外部文档分离开,只在需要时被引用。

高效的上下文管理

上下文窗口是模型一次性考虑的最大文本量,对话历史、读取的文件、生成的代码都会占用 Token。

  • 使用 /clear 保持专注:当你完成一个功能或切换任务时,频繁使用 /clear 命令来清除会话历史。这能让 Claude 重新聚焦、减少“幻觉”并节省 Token 成本。
  • 使用 /compact 压缩历史:如果当前任务太复杂,无法清除历史,可以使用 /compact 将现有对话要约化,然后基于这个摘要继续会话。你可以给出指令,说明需要压缩时重点保留哪些信息(如身份验证实现、数据库模式)。
  • 任务拆解:如果一个项目过大,可以将任务分解成计划,保存到 Markdown 文件中。让 Claude 每次只处理计划的第一部分,完成后更新计划文件,然后使用 /clear 开始下一个部分。
  • 注意 Auto Compacting:当上下文窗口耗尽时,Claude 会自动压缩历史。应注意右下角的指示器。如果在一个自然的断点(如一次提交后)达到 35% 的容量,建议主动执行 /compact/clear

Claude Code 的权限管理与安全性

默认情况下,Claude Code 会对任何可能修改你系统的操作(文件写入、Bash 命令、MCP 工具等)请求权限,这是出于安全优先的保守设计。

权限管理设置

你可以定制允许列表(Allowlist)和拒绝列表(Denylist),让 Claude 在安全范围内自主运行。

配置方式

  1. 会话内选择:“始终允许” (Always allow)。
  2. 使用 /permissions 命令:通过 CLI 交互式地添加或移除工具。
  3. 手动编辑配置文件:编辑 .claude/settings.local.json~/.claude.json 文件。
  4. 使用 CLI 标志:使用 --allowedTools 进行会话特定权限设置。

推荐的允许列表(提高效率)

建议允许那些频繁使用且安全的操作,以避免工作流中断:

  • 文件编辑 (Edit)。
  • grepls (搜索和查看代码库)。
  • 目录移动和创建 (mv, mkdir)。
  • 运行测试或编译等命令(如 Bash(pnpm test)Bash(git commit:*))。
  • 允许特定的 MCP 工具(如 mcp__serena)。

推荐的拒绝列表(确保安全)

有些操作应始终要求人工批准,或直接禁用:

  • 删除文件命令 (rm):永远不应自动批准,以防致命性删除。
  • 通配符 Bash 命令 (Bash(*))绝对不要授予,这允许 Claude 运行任何命令而无需批准,过于危险。应明确列出允许的命令或命令组。
  • 包安装(如 npm install):存在潜在安全风险。
  • Git 破坏性操作(如 git commit, git push):建议保留人工确认。
  • 环境变量读取(如 Read(.env.*)):防止敏感密钥泄露。

安全的 YOLO 模式(Dev Containers)

如果希望 Claude 完全自主操作,无需任何权限确认,可以使用 --dangerously-skip-permissions 标志。但这伴随着数据丢失、系统损坏或数据外泄的风险。

安全运行 YOLO 模式的解决方案:在开发容器(Dev Containers) 中运行 Claude Code。

  1. 隔离环境:Dev Containers 将 Claude Code 运行在自身的隔离环境(虚拟化机器)中,保护了你的本地主机。
  2. 防火墙:可以设置防火墙,仅允许访问你需要的网站。
  3. 运行 YOLO:在容器内启动 Claude 时使用 claude --dangerously-skip-permissions,即可实现安全、自主地工作。

Anthropic 官方提供了 Dev Containers 的参考实现,包含 Dockerfile。

掌握 Claude Code 进阶功能:Agent 工作流

Claude Code 提供了多种高级特性,让你可以构建复杂的、智能体工作流(agentic workflows),是“如何使用 claude code”解决复杂工程问题的关键。

自定义斜杠命令(Custom Slash Commands)

自定义斜杠命令(Custom Slash Commands)是可复用的指令模板,让你可以将复杂的智能体工作流封装成一个简单的命令。

创建方式

  1. .claude 文件夹下创建 commands 文件夹。
  2. 将工作流指令以 Markdown 文件形式存放在该文件夹内(例如 primer.mdfix-github-issue.md)。
  3. 重启 Claude 会话,即可通过 / 菜单访问这些命令。

最佳实践

  • 参数化命令:在 Markdown 文件中使用 $ARGUMENTS 关键字,即可在执行斜杠命令时传入参数。
    • 例如:/fixGithubIssue 1234 将 issue #1234 作为参数传入。
  • 共享与复用:将这些命令提交到 Git 仓库,方便团队共享和复用复杂的 Prompt。
  • 构建复杂工作流:自定义命令可以构建多步骤的智能体工作流,例如自动修复 GitHub Issue 并创建 PR

子 Agent(Sub-agents)的部署与专业化

子 Agent(Sub-agents)是 Claude Code 的一项强大功能,允许主 Claude 智能体调用多个具有专门智能、上下文窗口和工具权限的专业化 AI 助手。

子 Agent 的优势

  • 专业化智能:每个子 Agent 都有自己的专门系统 Prompt
  • 上下文隔离:子 Agent 拥有独立的上下文窗口,其对话历史不会污染主 Agent 的上下文,实现 Token 节约。
  • 自主工作:可以自主处理被委托的任务。
  • 并行执行:主 Agent 可以同时启动多个子 Agent 并行工作。

创建与配置

  1. 子 Agent 文件存放在 .claude/agents 文件夹中。
  2. 你可以使用内置的 /agents 命令让 Claude 引导你创建子 Agent。
  3. 子 Agent 文件是 Markdown 格式,顶部包含元数据(名称、描述、工具列表)。
  4. 描述的重要性description 字段至关重要,它告诉主 Claude 何时以及如何调用该子 Agent。
  5. 指定模型:可以为子 Agent 指定特定的模型,例如 Sonnet 或 Opus。

示例:可以创建一个专门用于 “验证门” (Validation Gates) 的子 Agent,在代码生成后自主编写和运行测试,直到代码达到预期。

虽然其他 AI 编码助手没有正式的“子 Agent”概念,但可以通过在全局规则中定义一组专门的 Prompt 来达到类似的效果。

Claude Code MCP 服务器:外部工具的连接

MCP(Model Context Protocol) 是 Anthropic 的开放标准,用于将 AI 助手连接到外部工具和数据源。Claude Code 既可以作为 MCP 服务器,也可以作为客户端。

关键 MCP 服务器推荐

MCP 服务器用途优势/功能来源
Serena代码语义检索与编辑语义检索能力强,能更好地理解和搜索大型代码库,提升 Claude Code 在处理现有代码库时的表现。
Archon V2 (预告)知识与任务管理骨干具有实时任务管理(带用户界面)、知识爬取(类似 RAG),目标是成为 AI 编码助手的 MCP 服务器。
Puppeteer浏览器自动化自动截屏、导航网站、E2E 测试生成。
Context7最新文档检索参照最新库文档、版本特定信息、精确的 API 参考。
Postgres/Supabase数据库管理允许 Claude Code 直接访问和管理数据库。
GitHubGitHub 交互用于 PR 审查、issue 管理等,是 gh CLI 的补充。
Figma设计转代码从设计稿生成代码、自动下载 SVG 资源、获取组件规范。

安装 Serena 示例:你可以通过特定的命令(如使用 uvx)将 Serena 添加为 MCP 服务器。添加后,别忘了将其添加到 .claude/settings.local.json 的权限设置中,允许其自动访问工具。

Claude Hooks:确定性自动化

Claude Hooks 是一种确定性的自动化方式,允许你在 Claude Code 生命周期中的特定点自动执行自定义命令(通常是 Shell 脚本)。

关键触发点

  • PreToolUse:在 Claude 执行任何工具(文件编辑、命令)之前。
  • PostToolUse:在工具成功完成之后。
  • Notification:当 Claude 发送通知时。
  • Stop:当 Claude 完成任务时。
  • Sub-agent Stop:当子 Agent 完成任务时。

配置方式:Hooks 通常在 .claude/settings.local.json 文件中以 JSON 格式定义。你也可以使用 /hooks 交互式命令进行配置。

示例应用

  • 代码格式化:在文件修改后自动运行 Prettier。
  • 类型检查:在文件编辑后自动运行 TypeScript 检查,确保只接受良好且正确的文件。
  • 日志记录:每次 Claude 完成编辑后记录时间戳。
  • 任务通知:在任务完成时播放自定义通知音或发送系统通知。
  • 代码审查:在任务停止时启动 reviewit 等工具进行本地代码审查。

并行 Agent 执行与 Git Worktrees

并行 Agent 执行(Parallel Agent Execution)允许同时运行多个 Claude Code 实例,以提高开发速度或获取多种实现方案。

方式一:多 Claude 验证(Separate Context)

让一个 Claude 编写代码,另一个 Claude 专注于审查或测试。

  • 步骤:Claude A 编写代码 -> 运行 /clear 或启动 Claude B -> Claude B 审查/测试 -> Claude C(或清理后的 A)根据反馈修改代码。
  • 通信:可以通过让 Agent 写入共享的 Markdown 文件(如 scratchpads)来实现状态共享和通信。

方式二:Git Worktrees(隔离环境)

Worktrees 允许你从同一仓库检出多个分支到不同的本地目录,每个目录拥有独立的文件状态。

  • 优势:每个 Claude 实例都在独立的 Git 分支和目录中工作,保证了隔离性。可以并行处理多个独立任务,或让多个 Agent 尝试实现同一个功能,以选择最佳方案。
  • 结构:主仓库共享 .git 数据库,但每个 Worktree 目录拥有独立的工作目录。
  • 自动化:可以使用自定义斜杠命令(如 /prep_parallel/execute_parallel)来自动化 Worktree 的创建、分支设置以及多 Agent 的并行执行。

工作流

  1. Prep:创建多个 Worktree,每个 Worktree 基于不同的功能分支。
  2. Execute:在每个 Worktree 目录中启动一个 Claude 实例,让它们并行实现同一功能或不同功能。
  3. 收集合并:每个 Agent 完成后,将结果记录在 results.md 中。你可以测试所有实现,选择最佳的一个,然后使用 git checkout maingit merge 将其合并回主分支。

最佳实践工作流:如何使用 Claude Code 高效编码

高效的“claude code 如何使用”并不仅仅是输入 Prompt,而是建立一套系统化的工作流程。

探索-计划-编码-提交(Explore, Plan, Code, Commit)

这是一个适用于大多数问题的通用工作流程:

  1. 探索/研究(Explore & Research)
    • 要求 Claude 阅读相关文件、图像或 URL,但明确告诉它暂时不要编写代码。
    • 对于复杂问题,考虑使用子 Agent 来验证细节或调查特定问题,这能保护主上下文。
  2. 制定计划(Plan)
    • 要求 Claude 制定解决问题的详细计划
    • 使用“思考”关键词think < think hard < think harder < ultrathink)来触发扩展思考模式,分配更多计算时间来评估替代方案。
    • 如果计划合理,可以要求 Claude 将计划保存为文档或 GitHub Issue,以便后续如果实施失败可以重置。
  3. 实施代码(Code)
    • 要求 Claude 实施解决方案。可以要求它在实施过程中验证解决方案的合理性。
  4. 提交与收尾(Commit & Finish)
    • 要求 Claude 提交结果并创建 Pull Request。
    • 如果相关,要求 Claude 更新 READMEschangelogs

核心理念:第 1 步和第 2 步至关重要。在编码之前进行研究和计划,能显著提高需要深入思考的问题的性能。

测试驱动开发(TDD)

智能体编程使测试驱动开发(TDD)更加强大:

  1. 编写测试:要求 Claude 根据预期的输入/输出对编写测试。明确说明正在进行 TDD,以防止它创建模拟实现。
  2. 运行测试并确认失败:告诉 Claude 运行测试并确认它们失败,明确要求它在此时不要编写任何实现代码。
  3. 提交测试:对测试满意后,要求 Claude 提交测试。
  4. 编写通过测试的代码:要求 Claude 编写代码以通过测试,并指示它不要修改测试。Claude 会迭代地编写、运行、调整直到所有测试通过。
  5. 提交代码:满意后提交代码。

进阶 TDD:可以要求独立的子 Agent 来验证实现是否对测试过度拟合

视觉反馈循环(截图与图像输入)

Claude 擅长处理图像和图表。

  • 输入方式
    • 在 macOS 上使用 Cmd+Ctrl+Shift+4 截图到剪贴板,然后使用 Ctrl+V 粘贴到终端。
    • 拖放图像到 Prompt 输入框(拖动时按住 Shift 键)。
    • 提供图像文件路径。
  • 工作流
    1. 提供一个视觉模型(Mock)(如设计图或截图)。
    2. 要求 Claude 实施设计,获取结果截图,并迭代直到结果匹配 Mock。
  • 用途:UI 开发、数据分析和调试。

代码库问答与新员工入职

在熟悉新代码库时,Claude Code 可以充当你的编程伙伴,回答你会问其他工程师的各种问题:

  • 日志记录如何工作?
  • 如何创建新的 API 端点?
  • 特定的代码片段有什么作用?
  • 谁负责这个功能?
  • 为什么 API 设计成这样?

Anthropic 内部使用 Claude Code 作为核心的新员工入职流程,显著缩短了新员工的上手时间。

Git 与 GitHub CLI 集成

Claude Code 能够高效处理大量的 Git 和 GitHub 操作,许多 Anthropic 工程师使用 Claude 处理 90% 以上的 git 交互。

Git 操作

  • 历史搜索:搜索 Git 历史记录以回答“哪些变更进入了 v1.2.3?”或“谁拥有这个功能?”等问题。
  • 编写 Commit Message:Claude 会根据你的更改和最近的历史记录自动撰写提交信息
  • 复杂操作:处理复杂 Git 操作,如文件恢复、解决 Rebase 冲突、比较和嫁接补丁。

GitHub 交互

安装 GitHub CLI (gh) 后,Claude Code 能够直接使用它来管理远程仓库。

  • 创建 PR:Claude 能够根据代码差异和上下文生成适当的提交信息并创建 PR。
  • 一键修复:解决简单的代码审查评论,并自动推送到 PR 分支。
  • 自动修复 Issue:通过自定义斜杠命令,让 Claude 根据 Issue 编号自动拉取详情、实现修复、编写测试,并创建 Pull Request。

效率优化与 Claude Code 提示词技巧

要充分发挥 Claude Code 的潜力,必须精通如何优化指令(Prompting)和微调工作流程。

思考模式层级(Think Hard Hierarchy)

Prompt 中添加特定的关键词,可以触发 Claude 的扩展思考能力,分配更多的计算时间进行深入分析。

思考级别关键字用途建议来源
基础思考think简单的功能添加或 Bug 修复。
深度思考think hard处理复杂的业务逻辑或架构决策。
更深思考think harder性能优化或安全敏感代码。
最大思考ultrathink解决棘手问题(如遗留代码集成、复杂算法)或多次尝试失败后。

注意:更高的思考级别会消耗更多时间(Latency)和 Token 成本。

提升指令的精确性

Claude Code 的成功率与其指令的特异性(specificity)成正比。虽然 Claude 可以推断意图,但它无法读取思想。因此,模糊的指令会导致结果不可靠,而清晰、详细的指示能减少后续纠正的需要。

差的指令(Poor)好的指令(Good)
foo.py 添加测试foo.py 编写新的测试用例,覆盖用户已登出的边缘情况。避免使用 Mock。
添加一个日历小部件查看主页上现有小部件是如何实现的,以理解其模式,特别是代码和接口是如何分离的。BarWidget.js 是一个很好的起始示例。然后,遵循该模式实现一个新的日历小部件…

例如,在请求添加日历小部件时,好的指令会要求 Claude:

  1. 参考现有小部件的实现方式,以理解代码模式和接口分离方式。
  2. 指定一个参考示例文件(如 BarWidget.js)作为起点。
  3. 明确要求遵循现有模式来实现新组件。

其他专业 Prompt 技巧

  • 内置关键词:Claude Code 内置了一些关键词(如 important, proactively, ultrathink),应在适当的时候使用。
  • 避免过度工程:Claude 倾向于过度工程和保留旧代码以实现向后兼容。应避免使用如 production ready 等可能导致过度设计的关键词。
  • 鼓励提问:明确要求 Claude 在计划阶段提出澄清问题,这能揭示你可能没有意识到的假设。

语音输入优势

使用语音输入可以显著提高效率和指令质量。

  • 输入速度:语音(150-200 词/分)远快于打字(40-60 词/分)。
  • 信息量:语音更容易自然地包含背景、原因和期望结果。例如,打字可能只写“修复 Bug”,而语音可能说“修复 2 页面数据未显示的 Bug”。

推荐工具:Superwhisper(可转录并翻译)、WispFlow(高精度中文转录)。

提早纠正与打断

成为一个积极的协作者,指导 Claude 的方法,通常能获得更好的结果。

  • 发现跑偏即按 Esc:一旦看到 Claude 朝错误的方向发展,立即按下 Escape 键中断,保留上下文,然后重新指示或扩展指令。
  • 双击 Esc 编辑重试:双击 Esc 可以跳回历史记录,编辑上一个 Prompt 并重新执行。
  • 撤销更改:要求 Claude 撤销更改,然后尝试不同的方法。

自动化基础设施(Headless Mode)

Claude Code 的无头模式(Headless Mode),通过 -p 标志启用,允许在非交互式环境(如 CI/CD、Pre-commit Hooks、构建脚本)中自动化使用 Claude。

  • Issue 分流:用于自动化处理 GitHub 事件,例如检查新创建的 Issue 并自动分配标签。
  • 作为 Linter:Claude Code 可以进行主观代码审查,识别传统工具可能遗漏的问题,如错别字、过时的注释、误导性的函数名。
  • Fanning Out / Pipelining:用于处理大规模迁移或分析任务(如分析数千个 CSV 文件),通过脚本程序化调用 Claude。

Claude Code 实际使用示例

下面将为你提供Claude Code的实际使用示例,帮助你快速上手并掌握一些常见的开发任务。系好安全带,发车!

1. 使用 Claude Code 帮你理解新代码库

快速了解代码库概况

如果你刚加入一个新项目,想要快速了解其结构,你可以按照以下步骤进行:

  1. 进入项目根目录:cd /path/to/project
  2. 启动 Claude Code:claude
  3. 请求代码库的概况:> 给我一个代码库概览
  4. 深入了解特定组件:
    • > 解释这里使用的主要架构模式
    • > 关键的数据模型有哪些?
    • > 认证是如何处理的?

小技巧:

  • 从广泛的问题入手,然后逐步聚焦到具体领域。
  • 询问项目中使用的编码约定和模式。
  • 请求项目特定术语的词汇表。

查找相关代码

当你需要定位与某个功能相关的代码时,可以按如下方式操作:

  1. 请求 Claude 查找相关文件:> 查找处理用户认证的文件
  2. 获取组件交互的上下文:> 这些认证文件是如何协同工作的?
  3. 了解执行流程:> 从前端到数据库,跟踪登录过程

小技巧:

  • 明确你想要查找的内容。
  • 使用项目中领域特有的语言。

2. 使用 Claude Code 高效修复 Bug

诊断错误消息

遇到错误时,你可以通过以下方法找出并修复问题:

  1. 与 Claude 分享错误消息:> 我在运行 npm test 时看到错误
  2. 请求修复建议:> 提供一些修复 user.ts 中 @ts-ignore 的方法
  3. 应用修复:> 更新 user.ts,添加你建议的 null 检查

小技巧:

  • 告诉 Claude 用于重现问题的命令,并提供堆栈跟踪。
  • 提及任何重现错误的步骤。
  • 说明错误是间歇性的还是一致性的。

3. 使用 Claude Code 进行代码重构

现代化旧代码

当需要更新旧代码,采用现代的编程模式时,可以按照以下步骤进行:

  1. 识别要重构的旧代码:> 查找我们代码库中弃用的 API
  2. 请求重构建议:> 建议如何重构 utils.js,使用现代 JavaScript 特性
  3. 安全地应用更改:> 重构 utils.js,使用 ES2024 特性,同时保持原有行为
  4. 验证重构:> 对重构后的代码运行测试

小技巧:

  • 向 Claude 询问现代方法的好处。
  • 要求在需要时保持向后兼容性。
  • 进行小步、可测试的增量式重构。

4. 使用 Claude Code 处理测试

添加测试覆盖率

若需要为未覆盖的代码添加测试,可以按如下步骤进行:

  1. 识别未经测试的代码:> 查找 NotificationsService.swift 中未覆盖的函数
  2. 生成测试框架:> 为通知服务添加测试
  3. 添加有意义的测试用例:> 为通知服务中的边缘情况添加测试用例
  4. 运行并验证测试:> 运行新测试,修复任何失败

小技巧:

  • 要求覆盖边缘情况和错误条件的测试。
  • 根据需要请求单元测试和集成测试。
  • 请 Claude 解释测试策略。

5. 使用 Claude Code 创建 Pull Request

生成全面的 PR

当你需要为你的更改创建一个文档清晰的 pull request 时,按以下步骤操作:

  1. 总结你的更改:> 总结我对认证模块所做的更改
  2. 使用 Claude 生成 PR:> 创建一个 PR
  3. 审查并完善描述:> 增强 PR 描述,补充有关安全性改进的更多信息
  4. 添加测试信息:> 添加关于如何测试这些更改的信息

小技巧:

  • 直接要求 Claude 为你创建一个 PR。
  • 提交前审查 Claude 生成的 PR。
  • 要求 Claude 突出潜在的风险或注意事项。

6. 使用 Claude Code 处理文档

生成代码文档

如果你需要添加或更新代码文档,可以按照以下步骤操作:

  1. 识别没有适当 JSDoc 注释的代码:> 查找 auth 模块中没有适当 JSDoc 注释的函数
  2. 生成文档:> 为 auth.js 中未注释的函数添加 JSDoc 注释
  3. 审查和增强文档:> 改进生成的文档,增加更多上下文和示例
  4. 验证文档:> 检查文档是否符合我们项目的标准

小技巧:

  • 指定你所需的文档风格(如 JSDoc、docstrings 等)。
  • 在文档中要求提供示例。
  • 为公共 API、接口和复杂逻辑请求文档。

7. 使用 Claude Code 处理图像

分析图像和屏幕截图

如果你需要在代码库中使用图像或让 Claude 分析图像内容,按照以下步骤进行:

  1. 将图像添加到对话中:
    • 将图像拖入 Claude Code 窗口。
    • 复制并粘贴图像至 CLI (ctrl+v)。
    • 提供图像路径:$ claude > 分析此图像:/path/to/your/image.png
  2. 请求 Claude 分析图像:
    • > 这张图显示了什么?
    • > 描述一下这张截图中的 UI 元素
    • > 这个图表中有什么问题吗?
  3. 使用图像获取上下文:
    • > 这是错误的截图,是什么导致的?
    • > 这是当前的数据库架构,我们需要如何修改以支持新特性?
  4. 从图像中获取代码建议:
    • > 生成与这个设计草图匹配的 CSS
    • > 用什么 HTML 结构可以重建这个组件?

小技巧:

  • 当文本描述不清晰或繁琐时,可以使用图像。
  • 提供错误、UI 设计或图表的截图,以便获得更好的上下文。
  • 可以在对话中使用多个图像。

8. 设置 Claude Code 项目记忆

创建有效的 CLAUDE.md 文件

为了存储重要的项目信息、约定和常用命令,你可以设置一个 CLAUDE.md 文件:

为你的代码库初始化 CLAUDE.md 文件:> /init

小技巧:

  • 包括常用命令(如构建、测试、检查)以避免重复搜索。
  • 记录代码风格偏好和命名约定。
  • 添加特定于项目的重要架构模式。
  • 你可以将 CLAUDE.md 文件添加到你运行 Claude 的文件夹、父目录(Claude 会自动读取这些文件)或子目录(Claude 会按需拉取这些文件)。

9. 将 Claude 用作 Unix 风格的实用程序

添加到你的验证过程

将 Claude 添加到你的构建脚本:

// package.json
{
  ...
  "scripts": {
    ...
    "lint:claude": "claude -p '你是一个代码检查工具,请查看与主分支的差异,并报告任何与拼写错误相关的问题。每个问题的文件名和行号要在一行上,描述在第二行。不要返回任何其他文字。'"
  }
}

管道输入,管道输出

通过 Claude 管道传输数据:$ cat build-error.txt | claude -p '简明扼要地解释这个构建错误的根本原因' > output.txt

10. 使用 Claude Code 设置模型上下文协议 (MCP)

配置 MCP 服务器

如果你想通过将 Claude 连接到专用工具和外部服务器来增强其功能,请按以下步骤操作:

  1. 添加 MCP Stdio 服务器:
    • 基本语法:$ claude mcp add <name> <command> [args...]
    • 示例:添加本地服务器:$ claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
  2. 管理 MCP 服务器:
    • 列出所有配置的服务器:$ claude mcp list
    • 获取特定服务器的详细信息:$ claude mcp get my-server
    • 删除服务器:$ claude mcp remove my-server

小技巧:

  • 使用 -s--scope 标志与 project(默认)或 global 一起指定配置的存储位置。
  • 使用 -e--env 标志设置环境变量(例如,-e KEY=value)。
  • MCP 遵循客户端-服务器

架构,Claude Code(客户端)可以连接到多个专用服务器。

连接到 Postgres MCP 服务器

如果你希望 Claude 具有只读权限来查询 PostgreSQL 数据库和检查架构,按照以下步骤操作:

  1. 添加 Postgres MCP 服务器:$ claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
  2. 使用 Claude 查询数据库:
    • $ claude > 描述一下我们用户表的架构
    • $ claude > 系统中最新的订单有哪些?
    • $ claude > 展示客户和发票之间的关系

小技巧:

  • Postgres MCP 服务器提供只读访问,确保安全。
  • Claude 可以帮助你探索数据库结构并运行分析查询。
  • 使用它可以快速了解不熟悉项目中的数据库架构。
  • 确保你的连接字符串使用具有所需最低权限的凭据。

结语

Claude Code 不仅仅是一个代码生成工具,它是一个高效的开发伙伴。通过遵循这些最佳实践,特别是优先规划、管理上下文、利用专业化子 Agent 和 Hooks 实现自动化,你可以将 Claude Code 的输出从“意大利面条代码”转变为接近生产就绪的实现。

Claude Code 使用技巧回顾

  1. 定制化设置:使用 /init 创建 CLAUDE.md,并根据项目需求持续细化。
  2. 管理权限:配置 .claude/settings.local.json,允许安全操作,并拒绝危险命令。
  3. 遵循工作流:在编码前,非强制性但强烈建议进入计划模式,并利用 think hard 等关键词深入思考。
  4. 利用智能体:使用自定义斜杠命令封装重复工作流,并部署子 Agent 实现专业化任务分工。
  5. 主动协作:一旦发现 Claude 跑偏,立即使用 Esc 打断并提供清晰、具体的指令。
  6. 并行加速:通过 Git Worktrees 实现多 Agent 并行开发,以选择最佳实现或同时处理不同任务。

AI 不会取代软件工程师,但使用 AI 的工程师将取代不使用 AI 的工程师。掌握 Claude Code,就是掌握未来的编码方式。

通过学习这些 Claude Code 最佳实践实用教程,可以充分发挥 Claude Code 的强大功能,提高开发效率和代码质量。如果你想了解更多 Claude Code 的教程,请参考: Claude Code 完全指南


也可以看看