本教程旨在为希望深入了解和高效利用 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)来探索和理解代码库。它会使用
glob
、grep
和find
等工具,像一个新加入团队的工程师一样,逐步理解项目结构。
为什么选择 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 切换三种主要的聊天模式:
- 默认模式 (Default Mode):你发出指令,Claude 提出更改建议,等待你的权限确认后执行。你可以通过
/output-style
命令要求 Claude 解释其行为原因。 - 自动模式 (Auto Mode / Vibe Coder Mode):Claude 无需等待许可即可编辑文件和编写代码,自主工作。出于安全考虑,它仍会请求执行某些 Bash 命令(如安装包)的权限。如果发现 Claude 跑偏,你可以随时按 Esc 键停止进程。
- 计划模式 (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 或绕过错误边界设置)。
专家建议:
- 保持简洁和可读性:
CLAUDE.md
会被添加到 Prompt 中,应保持简洁,并像优化 Prompt 一样对其进行迭代和优化。 - 使用
#
快速添加指令:你可以使用#
键在编码时给出指令,Claude 会自动将其合并到相关的CLAUDE.md
文件中,方便团队成员受益。 - 使用强调词: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 在安全范围内自主运行。
配置方式:
- 会话内选择:“始终允许” (Always allow)。
- 使用
/permissions
命令:通过 CLI 交互式地添加或移除工具。 - 手动编辑配置文件:编辑
.claude/settings.local.json
或~/.claude.json
文件。 - 使用 CLI 标志:使用
--allowedTools
进行会话特定权限设置。
推荐的允许列表(提高效率)
建议允许那些频繁使用且安全的操作,以避免工作流中断:
- 文件编辑 (
Edit
)。 grep
、ls
(搜索和查看代码库)。- 目录移动和创建 (
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。
- 隔离环境:Dev Containers 将 Claude Code 运行在自身的隔离环境(虚拟化机器)中,保护了你的本地主机。
- 防火墙:可以设置防火墙,仅允许访问你需要的网站。
- 运行 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)是可复用的指令模板,让你可以将复杂的智能体工作流封装成一个简单的命令。
创建方式
- 在
.claude
文件夹下创建commands
文件夹。 - 将工作流指令以 Markdown 文件形式存放在该文件夹内(例如
primer.md
或fix-github-issue.md
)。 - 重启 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 并行工作。
创建与配置
- 子 Agent 文件存放在
.claude/agents
文件夹中。 - 你可以使用内置的
/agents
命令让 Claude 引导你创建子 Agent。 - 子 Agent 文件是 Markdown 格式,顶部包含元数据(名称、描述、工具列表)。
- 描述的重要性:
description
字段至关重要,它告诉主 Claude 何时以及如何调用该子 Agent。 - 指定模型:可以为子 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 直接访问和管理数据库。 | |
GitHub | GitHub 交互。 | 用于 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 的并行执行。
工作流:
- Prep:创建多个 Worktree,每个 Worktree 基于不同的功能分支。
- Execute:在每个 Worktree 目录中启动一个 Claude 实例,让它们并行实现同一功能或不同功能。
- 收集合并:每个 Agent 完成后,将结果记录在
results.md
中。你可以测试所有实现,选择最佳的一个,然后使用git checkout main
和git merge
将其合并回主分支。
最佳实践工作流:如何使用 Claude Code 高效编码
高效的“claude code 如何使用”并不仅仅是输入 Prompt,而是建立一套系统化的工作流程。
探索-计划-编码-提交(Explore, Plan, Code, Commit)
这是一个适用于大多数问题的通用工作流程:
- 探索/研究(Explore & Research):
- 要求 Claude 阅读相关文件、图像或 URL,但明确告诉它暂时不要编写代码。
- 对于复杂问题,考虑使用子 Agent 来验证细节或调查特定问题,这能保护主上下文。
- 制定计划(Plan):
- 要求 Claude 制定解决问题的详细计划。
- 使用“思考”关键词(
think
<think hard
<think harder
<ultrathink
)来触发扩展思考模式,分配更多计算时间来评估替代方案。 - 如果计划合理,可以要求 Claude 将计划保存为文档或 GitHub Issue,以便后续如果实施失败可以重置。
- 实施代码(Code):
- 要求 Claude 实施解决方案。可以要求它在实施过程中验证解决方案的合理性。
- 提交与收尾(Commit & Finish):
- 要求 Claude 提交结果并创建 Pull Request。
- 如果相关,要求 Claude 更新
READMEs
或changelogs
。
核心理念:第 1 步和第 2 步至关重要。在编码之前进行研究和计划,能显著提高需要深入思考的问题的性能。
测试驱动开发(TDD)
智能体编程使测试驱动开发(TDD)更加强大:
- 编写测试:要求 Claude 根据预期的输入/输出对编写测试。明确说明正在进行 TDD,以防止它创建模拟实现。
- 运行测试并确认失败:告诉 Claude 运行测试并确认它们失败,明确要求它在此时不要编写任何实现代码。
- 提交测试:对测试满意后,要求 Claude 提交测试。
- 编写通过测试的代码:要求 Claude 编写代码以通过测试,并指示它不要修改测试。Claude 会迭代地编写、运行、调整直到所有测试通过。
- 提交代码:满意后提交代码。
进阶 TDD:可以要求独立的子 Agent 来验证实现是否对测试过度拟合。
视觉反馈循环(截图与图像输入)
Claude 擅长处理图像和图表。
- 输入方式:
- 在 macOS 上使用
Cmd+Ctrl+Shift+4
截图到剪贴板,然后使用 Ctrl+V 粘贴到终端。 - 拖放图像到 Prompt 输入框(拖动时按住 Shift 键)。
- 提供图像文件路径。
- 在 macOS 上使用
- 工作流:
- 提供一个视觉模型(Mock)(如设计图或截图)。
- 要求 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:
- 参考现有小部件的实现方式,以理解代码模式和接口分离方式。
- 指定一个参考示例文件(如
BarWidget.js
)作为起点。 - 明确要求遵循现有模式来实现新组件。
其他专业 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 帮你理解新代码库
快速了解代码库概况
如果你刚加入一个新项目,想要快速了解其结构,你可以按照以下步骤进行:
- 进入项目根目录:
cd /path/to/project
- 启动 Claude Code:
claude
- 请求代码库的概况:
> 给我一个代码库概览
- 深入了解特定组件:
> 解释这里使用的主要架构模式
> 关键的数据模型有哪些?
> 认证是如何处理的?
小技巧:
- 从广泛的问题入手,然后逐步聚焦到具体领域。
- 询问项目中使用的编码约定和模式。
- 请求项目特定术语的词汇表。
查找相关代码
当你需要定位与某个功能相关的代码时,可以按如下方式操作:
- 请求 Claude 查找相关文件:
> 查找处理用户认证的文件
- 获取组件交互的上下文:
> 这些认证文件是如何协同工作的?
- 了解执行流程:
> 从前端到数据库,跟踪登录过程
小技巧:
- 明确你想要查找的内容。
- 使用项目中领域特有的语言。
2. 使用 Claude Code 高效修复 Bug
诊断错误消息
遇到错误时,你可以通过以下方法找出并修复问题:
- 与 Claude 分享错误消息:
> 我在运行 npm test 时看到错误
- 请求修复建议:
> 提供一些修复 user.ts 中 @ts-ignore 的方法
- 应用修复:
> 更新 user.ts,添加你建议的 null 检查
小技巧:
- 告诉 Claude 用于重现问题的命令,并提供堆栈跟踪。
- 提及任何重现错误的步骤。
- 说明错误是间歇性的还是一致性的。
3. 使用 Claude Code 进行代码重构
现代化旧代码
当需要更新旧代码,采用现代的编程模式时,可以按照以下步骤进行:
- 识别要重构的旧代码:
> 查找我们代码库中弃用的 API
- 请求重构建议:
> 建议如何重构 utils.js,使用现代 JavaScript 特性
- 安全地应用更改:
> 重构 utils.js,使用 ES2024 特性,同时保持原有行为
- 验证重构:
> 对重构后的代码运行测试
小技巧:
- 向 Claude 询问现代方法的好处。
- 要求在需要时保持向后兼容性。
- 进行小步、可测试的增量式重构。
4. 使用 Claude Code 处理测试
添加测试覆盖率
若需要为未覆盖的代码添加测试,可以按如下步骤进行:
- 识别未经测试的代码:
> 查找 NotificationsService.swift 中未覆盖的函数
- 生成测试框架:
> 为通知服务添加测试
- 添加有意义的测试用例:
> 为通知服务中的边缘情况添加测试用例
- 运行并验证测试:
> 运行新测试,修复任何失败
小技巧:
- 要求覆盖边缘情况和错误条件的测试。
- 根据需要请求单元测试和集成测试。
- 请 Claude 解释测试策略。
5. 使用 Claude Code 创建 Pull Request
生成全面的 PR
当你需要为你的更改创建一个文档清晰的 pull request 时,按以下步骤操作:
- 总结你的更改:
> 总结我对认证模块所做的更改
- 使用 Claude 生成 PR:
> 创建一个 PR
- 审查并完善描述:
> 增强 PR 描述,补充有关安全性改进的更多信息
- 添加测试信息:
> 添加关于如何测试这些更改的信息
小技巧:
- 直接要求 Claude 为你创建一个 PR。
- 提交前审查 Claude 生成的 PR。
- 要求 Claude 突出潜在的风险或注意事项。
6. 使用 Claude Code 处理文档
生成代码文档
如果你需要添加或更新代码文档,可以按照以下步骤操作:
- 识别没有适当 JSDoc 注释的代码:
> 查找 auth 模块中没有适当 JSDoc 注释的函数
- 生成文档:
> 为 auth.js 中未注释的函数添加 JSDoc 注释
- 审查和增强文档:
> 改进生成的文档,增加更多上下文和示例
- 验证文档:
> 检查文档是否符合我们项目的标准
小技巧:
- 指定你所需的文档风格(如 JSDoc、docstrings 等)。
- 在文档中要求提供示例。
- 为公共 API、接口和复杂逻辑请求文档。
7. 使用 Claude Code 处理图像
分析图像和屏幕截图
如果你需要在代码库中使用图像或让 Claude 分析图像内容,按照以下步骤进行:
- 将图像添加到对话中:
- 将图像拖入 Claude Code 窗口。
- 复制并粘贴图像至 CLI (
ctrl+v
)。 - 提供图像路径:
$ claude > 分析此图像:/path/to/your/image.png
- 请求 Claude 分析图像:
> 这张图显示了什么?
> 描述一下这张截图中的 UI 元素
> 这个图表中有什么问题吗?
- 使用图像获取上下文:
> 这是错误的截图,是什么导致的?
> 这是当前的数据库架构,我们需要如何修改以支持新特性?
- 从图像中获取代码建议:
> 生成与这个设计草图匹配的 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 连接到专用工具和外部服务器来增强其功能,请按以下步骤操作:
- 添加 MCP Stdio 服务器:
- 基本语法:
$ claude mcp add <name> <command> [args...]
- 示例:添加本地服务器:
$ claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
- 基本语法:
- 管理 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 数据库和检查架构,按照以下步骤操作:
- 添加 Postgres MCP 服务器:
$ claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
- 使用 Claude 查询数据库:
$ claude > 描述一下我们用户表的架构
$ claude > 系统中最新的订单有哪些?
$ claude > 展示客户和发票之间的关系
小技巧:
- Postgres MCP 服务器提供只读访问,确保安全。
- Claude 可以帮助你探索数据库结构并运行分析查询。
- 使用它可以快速了解不熟悉项目中的数据库架构。
- 确保你的连接字符串使用具有所需最低权限的凭据。
结语
Claude Code 不仅仅是一个代码生成工具,它是一个高效的开发伙伴。通过遵循这些最佳实践,特别是优先规划、管理上下文、利用专业化子 Agent 和 Hooks 实现自动化,你可以将 Claude Code 的输出从“意大利面条代码”转变为接近生产就绪的实现。
Claude Code 使用技巧回顾:
- 定制化设置:使用
/init
创建CLAUDE.md
,并根据项目需求持续细化。 - 管理权限:配置
.claude/settings.local.json
,允许安全操作,并拒绝危险命令。 - 遵循工作流:在编码前,非强制性但强烈建议进入计划模式,并利用
think hard
等关键词深入思考。 - 利用智能体:使用自定义斜杠命令封装重复工作流,并部署子 Agent 实现专业化任务分工。
- 主动协作:一旦发现 Claude 跑偏,立即使用
Esc
打断并提供清晰、具体的指令。 - 并行加速:通过 Git Worktrees 实现多 Agent 并行开发,以选择最佳实现或同时处理不同任务。
AI 不会取代软件工程师,但使用 AI 的工程师将取代不使用 AI 的工程师。掌握 Claude Code,就是掌握未来的编码方式。
通过学习这些 Claude Code 最佳实践实用教程,可以充分发挥 Claude Code 的强大功能,提高开发效率和代码质量。如果你想了解更多 Claude Code 的教程,请参考: Claude Code 完全指南