核心功能
本章按从简单到复杂的顺序,逐一介绍 Claude Code 的核心功能。每个功能都包含 功能说明、实战演练 和 最佳实践。
3.1 基础对话与代码理解
功能说明
这是 Claude Code 最基础的使用方式:向它提问,让它在你的项目中寻找答案。Claude Code 会自动读取项目文件来理解上下文。
实战演练
场景:你接手了一个陌生项目,需要快速理解它。
这个项目是做什么的?主要用了哪些技术栈?src/backend/ 目录下的认证逻辑是怎么实现的?帮我梳理一下流程。这个 Dockerfile 做了什么优化?有没有可以改进的地方?最佳实践
- 把 Claude Code 当新人同事来带:给它足够上下文,不要假设它已经知道
- 使用
/clear开启新话题:避免旧对话干扰新问题 - 指定文件范围:"只看 src/api/ 目录" 比 "看看代码" 更精准
- 要求它先读再答:"先读取相关文件再回答" 确保它的回答基于实际代码
3.2 代码编辑与重构
功能说明
Claude Code 通过 Edit 和 Write 工具直接修改你的文件。你可以看到精确的 Diff 对比,选择接受或拒绝每个变更。
实战演练
场景 1:提取公共函数
src/components/ 里有三个组件都写了相似的日期格式化逻辑,请帮我提取成一个公共工具函数。Claude Code 会:
- 读取三个组件文件
- 识别重复逻辑
- 创建
src/utils/formatDate.ts - 修改三个组件文件,替换为公共函数导入
场景 2:批量重命名
把项目中所有用到 getUser 的地方改成 fetchUser,包括函数定义、调用和导入语句。最佳实践
- 小步快跑:一次做一件事,不要在一个指令中塞入太多变更
- 先读后改:让 Claude 先展示它打算改什么,确认后再让它动手
- 变更后立即验证:改完一个模块就运行测试,不要等到改完所有文件
- 使用 Git:每次满意后提交,不满意可以随时回退
3.3 终端命令执行
功能说明
Claude Code 可以直接在你的终端中执行命令——运行构建、安装依赖、执行测试——并读取输出来判断结果。
实战演练
场景 1:调试构建失败
项目 build 失败了,帮我找出原因并修复。Claude Code 会:
- 执行
pnpm build(或项目的构建命令) - 读取错误输出
- 找到出错的文件,分析原因
- 提出修复方案
- 修改代码后重新构建验证
场景 2:依赖问题排查
npm install 报了一堆 peer dependency 警告,帮我分析哪些需要处理。最佳实践
- 危险命令需要确认:
rm -rf、git push --force等操作会弹出确认弹窗,仔细审查 - 配置权限白名单:把你信任的常用命令(如
npm test)加入 allowlist,减少确认次数 - 让 Claude 解释命令:如果它要执行你不理解的命令,问一句 "这个命令做了什么?"
3.4 Git 操作
功能说明
Claude Code 可以执行完整的 Git 工作流:查看状态、创建分支、暂存文件、创建提交、甚至创建 PR。
实战演练
场景:自动提交
我改完了,帮我看看改了什么,然后创建一个合适的提交。Claude Code 会:
- 执行
git status和git diff - 分析变更内容
- 起草一条符合规范的 commit message
- 暂存文件并创建提交
最佳实践
- 永远让 Claude 先展示计划再提交:在它执行
git commit前确认 commit message - 设定提交规范:在 CLAUDE.md 中写明你的 commit message 格式要求
- 不要跳过 hooks:Git hooks 存在是有原因的,不要让它用
--no-verify
3.5 项目级多文件编辑
功能说明
当任务涉及 5+ 个文件时,Claude Code 会自动使用 TodoWrite 跟踪进度,逐个文件处理,最后汇总。
实战演练
场景:添加一个新 API 端点
帮我加一个新的 GET /api/users/:id/profile 端点。需要:新增路由、controller、service 层逻辑、数据库查询、以及对应的类型定义。Claude Code 会:
- 分析现有路由和 controller 的模式
- 创建 TodoWrite 任务列表
- 按数据库层 → Service → Controller → 路由的顺序依次实现
- 每完成一步验证一致性
最佳实践
- 描述最终目标,而非具体步骤:让 Claude Code 自己规划执行顺序
- 复杂任务使用 Plan Mode:先让它出计划,审查后再执行
- 分阶段审查:每完成一个模块就停下来看看,不要让它一口气改 20 个文件
3.6 Plan Mode(计划模式)
功能说明
Plan Mode 是 Claude Code 的重要功能。在写代码前,Claude 会先探索项目、设计方案、让你审查,然后再动手实现。
实战演练
场景:大型功能设计
帮我设计一个用户通知系统,支持站内信和邮件通知。进入 Plan Mode 后,Claude Code 会:
- 探索项目现有架构
- 提出 2-3 种设计方案
- 列出每种方案的利弊
- 等待你确认后再生成详细实现计划
- 计划批准后才开始写代码
最佳实践
- 涉及 3+ 文件的变更,默认开启 Plan Mode:减少返工
- 在计划阶段多提意见:这是调整方向成本最低的时候
- 复杂项目始终用 Plan Mode:简单修复可以跳过
3.7 Skills 技能系统
功能说明
Skills 是 Claude Code 的可复用能力模块。每个 Skill 封装了一套领域知识和工作流程。Skills 由社区或团队维护,按需加载。
实战演练
场景:使用 brainstorming skill 设计新功能
当你描述一个创意需求时,Claude Code 会自动检测到相关 Skill 并激活。例如说 "我想加一个暗色模式",brainstorming skill 会被激活,引导你完成需求分析。
或者手动激活:
/superpowers:brainstorming
我想在项目中加入实时通知功能。最佳实践
- 了解你常用的 Skills:知道哪些场景有对应的 Skill 可以用
- 尊重 Skill 的工作流程:Skill 有自己的流程设计,不要跳过步骤
- 可以编写自己的 Skills:团队可以封装内部最佳实践为 Skills
3.8 Hooks 钩子系统
功能说明
Hooks 允许你在 Claude Code 的特定生命周期节点(如工具调用前/后、会话启动/结束)插入自定义逻辑。
实战演练
场景:自动运行 lint
配置一个 Hook,在 Claude Code 写文件后自动运行 ESLint:
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "pnpm lint --fix ${CLAUDE_TOOL_OUTPUT_FILE}"
}
]
}
}最佳实践
- 用 Hooks 保证代码质量:自动 lint、自动格式化
- 不要过度使用:每个 Hook 都会增加延迟
- PreToolUse 用于额外验证:PostToolUse 用于自动化清理
3.9 MCP 扩展
功能说明
MCP(Model Context Protocol)是 Anthropic 提出的开放协议,允许 Claude Code 连接外部工具和数据源。你可以通过 MCP Server 让 Claude Code 访问数据库、调用 API、查询文档等。
实战演练
场景:连接 GitHub
配置 GitHub MCP Server 后,Claude Code 可以直接操作 Issues、PR、Actions:
// .claude/mcp.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-github"],
"env": {
"GITHUB_TOKEN": "${env:GITHUB_TOKEN}"
}
}
}
}然后直接在对话中说:
帮我看看这个项目有多少个 open issues,有哪些是 bug?最佳实践
- 从官方 MCP Server 开始:GitHub、Postgres、Slack 等都有官方支持
- 一个 MCP Server 一个职责:不要在一个 Server 中混合多种功能
- 注意安全性:MCP Server 能做的事 Claude 都能做,给予权限要审慎
3.10 Sub-agent(子代理)
功能说明
当任务可以拆分为多个独立子任务时,Claude Code 可以启动 Sub-agent 并行执行。每个 Sub-agent 是独立的 Claude 实例,有自己的上下文窗口。
实战演练
场景:并行代码审查
帮我对 src/utils/、src/components/、src/hooks/ 三个目录分别做代码审查。Claude Code 会启动 3 个并行的 Sub-agent,各自审查一个目录,最后汇总结果。
最佳实践
- 适用于无依赖的并行任务:各自改不同文件、分别审查不同模块
- 不适用于有依赖的任务:如果任务 B 依赖任务 A 的结果,不要并行化
- 子代理的上下文是独立的:不要把全局信息放在子代理提示里
3.11 Memory(持久化记忆)
功能说明
Claude Code 的 Memory 系统会在项目目录下存储关键信息,跨会话保持。它可以记住:
- 你的技术偏好和常用工具
- 项目的当前状态和进行中的工作
- 你之前的反馈和纠正
实战演练
Memory 是自动工作的。当你说:
这个项目的测试必须用 vitest,不要用 jest。Claude Code 会自动将这条规则存入 Memory。下次你让它写测试时,它会自动使用 vitest。
最佳实践
- 明确告知偏好:"以后做 X 时永远用 Y 方式"——这种声明会被记录
- 纠正错误时给出原因:"不要用 X,因为 Y"——带原因的反馈更容易被泛化
- 定期清理:过时的 Memory 可以用
/memory命令管理