Skip to content
Published at:

核心功能

本章按从简单到复杂的顺序,逐一介绍 Claude Code 的核心功能。每个功能都包含 功能说明实战演练最佳实践

3.1 基础对话与代码理解

功能说明

这是 Claude Code 最基础的使用方式:向它提问,让它在你的项目中寻找答案。Claude Code 会自动读取项目文件来理解上下文。

实战演练

场景:你接手了一个陌生项目,需要快速理解它。

这个项目是做什么的?主要用了哪些技术栈?
src/backend/ 目录下的认证逻辑是怎么实现的?帮我梳理一下流程。
这个 Dockerfile 做了什么优化?有没有可以改进的地方?

最佳实践

  • 把 Claude Code 当新人同事来带:给它足够上下文,不要假设它已经知道
  • 使用 /clear 开启新话题:避免旧对话干扰新问题
  • 指定文件范围:"只看 src/api/ 目录" 比 "看看代码" 更精准
  • 要求它先读再答:"先读取相关文件再回答" 确保它的回答基于实际代码

3.2 代码编辑与重构

功能说明

Claude Code 通过 EditWrite 工具直接修改你的文件。你可以看到精确的 Diff 对比,选择接受或拒绝每个变更。

实战演练

场景 1:提取公共函数

src/components/ 里有三个组件都写了相似的日期格式化逻辑,请帮我提取成一个公共工具函数。

Claude Code 会:

  1. 读取三个组件文件
  2. 识别重复逻辑
  3. 创建 src/utils/formatDate.ts
  4. 修改三个组件文件,替换为公共函数导入

场景 2:批量重命名

把项目中所有用到 getUser 的地方改成 fetchUser,包括函数定义、调用和导入语句。

最佳实践

  • 小步快跑:一次做一件事,不要在一个指令中塞入太多变更
  • 先读后改:让 Claude 先展示它打算改什么,确认后再让它动手
  • 变更后立即验证:改完一个模块就运行测试,不要等到改完所有文件
  • 使用 Git:每次满意后提交,不满意可以随时回退

3.3 终端命令执行

功能说明

Claude Code 可以直接在你的终端中执行命令——运行构建、安装依赖、执行测试——并读取输出来判断结果。

实战演练

场景 1:调试构建失败

项目 build 失败了,帮我找出原因并修复。

Claude Code 会:

  1. 执行 pnpm build(或项目的构建命令)
  2. 读取错误输出
  3. 找到出错的文件,分析原因
  4. 提出修复方案
  5. 修改代码后重新构建验证

场景 2:依赖问题排查

npm install 报了一堆 peer dependency 警告,帮我分析哪些需要处理。

最佳实践

  • 危险命令需要确认rm -rfgit push --force 等操作会弹出确认弹窗,仔细审查
  • 配置权限白名单:把你信任的常用命令(如 npm test)加入 allowlist,减少确认次数
  • 让 Claude 解释命令:如果它要执行你不理解的命令,问一句 "这个命令做了什么?"

3.4 Git 操作

功能说明

Claude Code 可以执行完整的 Git 工作流:查看状态、创建分支、暂存文件、创建提交、甚至创建 PR。

实战演练

场景:自动提交

我改完了,帮我看看改了什么,然后创建一个合适的提交。

Claude Code 会:

  1. 执行 git statusgit diff
  2. 分析变更内容
  3. 起草一条符合规范的 commit message
  4. 暂存文件并创建提交

最佳实践

  • 永远让 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 会:

  1. 分析现有路由和 controller 的模式
  2. 创建 TodoWrite 任务列表
  3. 按数据库层 → Service → Controller → 路由的顺序依次实现
  4. 每完成一步验证一致性

最佳实践

  • 描述最终目标,而非具体步骤:让 Claude Code 自己规划执行顺序
  • 复杂任务使用 Plan Mode:先让它出计划,审查后再执行
  • 分阶段审查:每完成一个模块就停下来看看,不要让它一口气改 20 个文件

3.6 Plan Mode(计划模式)

功能说明

Plan Mode 是 Claude Code 的重要功能。在写代码前,Claude 会先探索项目、设计方案、让你审查,然后再动手实现。

实战演练

场景:大型功能设计

帮我设计一个用户通知系统,支持站内信和邮件通知。

进入 Plan Mode 后,Claude Code 会:

  1. 探索项目现有架构
  2. 提出 2-3 种设计方案
  3. 列出每种方案的利弊
  4. 等待你确认后再生成详细实现计划
  5. 计划批准后才开始写代码

最佳实践

  • 涉及 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:

json
// .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:

json
// .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 命令管理