Claude Code 入门教程
适合人群:技术小白、编程初学者、对 AI 编程感兴趣的所有人
学习目标:读完本文后,你能够独立使用 Claude Code 完成一个完整的 OCP 项目
阅读时间:约 45-60 分钟
难度等级:★☆☆☆☆(零基础友好)
目录
- 前言:你即将拥有的"超能力"
- 什么是 Claude Code?—— 你的 AI 编程伙伴
- 安装 Claude Code —— 3 步搞定
- 第一次对话 —— 跟 AI 说"你好"
- 核心概念:理解 Claude Code 的"大脑"
- 基础操作:读、写、改、搜
- 实战演练一:用 Claude Code 写一个网页
- 实战演练二:管理一个完整项目
- 高级功能:让 Claude Code 更强大
- OCP 项目实战指南
- 常见问题与排错指南
- 总结与下一步
1. 前言:你即将拥有的"超能力"
1.1 先讲一个故事
想象一下,你刚进入一家新公司,被分配了一个任务:在两周内完成一个 OCP 项目。
你打开项目文档,看到一堆陌生的技术名词:Java、Maven、Spring Boot、REST API、数据库、Docker……你感到头皮发麻,不知从何下手。
这时候,如果有人告诉你:
“你旁边坐着一个经验丰富的资深程序员,他精通所有编程语言,24 小时待命,永远不会不耐烦,而且你只需用中文跟他聊天,他就能帮你写代码、修 Bug、部署项目。”
你会不会觉得这是天方夜谭?
这,就是 Claude Code。
1.2 Claude Code 是什么(用一句话说清楚)
Claude Code 是一个运行在终端里的 AI 编程助手。 你用自然语言(中文、英文都行)告诉它你想做什么,它就能帮你完成。
打个比方:
| 传统编程 | 使用 Claude Code |
|---|---|
| 你像一个建筑工人,需要自己搬砖、砌墙、刷漆 | 你像一个建筑设计师,画出蓝图,AI 帮你施工 |
| 你要记住每一行代码的语法 | 你只需要清楚地描述你想要什么 |
| 遇到 Bug 要花几小时搜索和调试 | 直接把错误信息告诉 Claude Code,它帮你修 |
| 学习新技术要先看几百页文档 | 直接让 Claude Code 边做边教你 |
1.3 学完本教程你能做什么
学完本教程后,你将能够:
- ✅ 独立安装和配置 Claude Code
- ✅ 用自然语言让 AI 帮你写代码
- ✅ 读懂、修改、管理一个完整的软件项目
- ✅ 使用 Claude Code 的高级功能(MCP、Skills、Workflows)
- ✅ 独立完成一个 OCP 项目(从零到部署上线)
1.4 本教程的阅读方式
1如果你是纯小白 ──→ 从头到尾按顺序阅读,每个练习都跟着做 2如果你有点基础 ──→ 可以跳过第 3 章,从第 5 章开始 3如果你想快速上手 ──→ 直接看第 7 章和第 10 章 4
2. 什么是 Claude Code?—— 你的 AI 编程伙伴
2.1 用最通俗的话解释
把 Claude Code 想象成一个住在你电脑终端里的智能助手:
1┌─────────────────────────────────────────────────────────┐ 2│ 你(人类) │ 3│ "帮我写一个计算器程序" │ 4│ "这段代码为什么报错?" │ 5│ "把我的项目打包部署" │ 6└─────────────────────┬───────────────────────────────────┘ 7 │ 8 │ 你只需要用中文说话 9 ▼ 10┌─────────────────────────────────────────────────────────┐ 11│ Claude Code(AI 助手) │ 12│ │ 13│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 14│ │ 理解你的需求 │ │ 读取项目文件 │ │ 执行命令 │ │ 15│ │ │ │ │ │ │ │ 16│ │ "他想做计算器"│ │ "我来看看 │ │ "mvn compile"│ │ 17│ │ "需要加减乘除"│ │ 现有代码" │ │ 编译项目 │ │ 18│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ 19│ │ │ │ │ 20│ └─────────────────┼─────────────────┘ │ 21│ │ │ 22│ ▼ │ 23│ ┌──────────────────────┐ │ 24│ │ 生成代码 / 修复 Bug │ │ 25│ │ 运行测试 / 部署项目 │ │ 26│ └──────────────────────┘ │ 27└─────────────────────────────────────────────────────────┘ 28
2.2 Claude Code 与 ChatGPT 有什么不同?
很多人会问:“我已经有 ChatGPT 了,为什么还要用 Claude Code?”
这是两个完全不同的工具:
| 对比维度 | ChatGPT(网页版) | Claude Code |
|---|---|---|
| 工作方式 | 在浏览器里一问一答 | 直接在终端里操作你的项目 |
| 读取文件 | 需要手动复制粘贴 | 自动读取你项目里的所有文件 |
| 修改代码 | 复制粘贴,容易出错 | 直接在文件里修改,精确无误 |
| 执行命令 | 不能 | 能执行编译、测试、部署等命令 |
| 项目理解 | 只看到你发给它的内容 | 能理解整个项目的结构和逻辑 |
| 适合场景 | 问问题、学知识 | 实际做项目、写代码 |
简单来说:ChatGPT 是你的"老师",Claude Code 是你的"同事"。
2.3 Claude Code 的核心能力一览
1Claude Code 的能力全景图 2═══════════════════════════════════════════════════════════ 3 4 🔍 读取与搜索 ✏️ 编写与修改 5 ┌─────────────────┐ ┌─────────────────┐ 6 │ • 读取任何文件 │ │ • 创建新文件 │ 7 │ • 搜索代码内容 │ │ • 精确修改代码 │ 8 │ • 文件模式匹配 │ │ • 批量替换内容 │ 9 │ • 理解项目结构 │ │ • 重构整个项目 │ 10 └─────────────────┘ └─────────────────┘ 11 12 ⚡ 执行与运行 🧠 思考与规划 13 ┌─────────────────┐ ┌─────────────────┐ 14 │ • 运行终端命令 │ │ • 分析需求 │ 15 │ • 编译项目 │ │ • 设计方案 │ 16 │ • 运行测试 │ │ • 解释代码 │ 17 │ • 安装依赖 │ │ • 教学指导 │ 18 │ • Git 操作 │ │ • Debug 分析 │ 19 └─────────────────┘ └─────────────────┘ 20 21 🔗 扩展能力(高级) 🎯 自动化(高级) 22 ┌─────────────────┐ ┌─────────────────┐ 23 │ • MCP 工具集成 │ │ • 定时任务 │ 24 │ • 自定义技能 │ │ • 工作流编排 │ 25 │ • 多模型切换 │ │ • 批量处理 │ 26 │ • 第三方服务连接 │ │ • 自动部署 │ 27 └─────────────────┘ └─────────────────┘ 28
3. 安装 Claude Code —— 3 步搞定
3.1 安装前的准备
在安装之前,你需要确认两件事:
第一步:确认你的操作系统
Claude Code 支持以下系统:
- Windows:Windows 10 或 11
- macOS:macOS 12 或更新版本
- Linux:主流发行版(Ubuntu、Debian、CentOS 等)
第二步:确认你有终端访问权限
- Windows 用户:需要安装 Git Bash 或使用 PowerShell 终端
- Mac 用户:自带 终端(Terminal) 应用
- Linux 用户:自带终端
新手提示:如果你用的是 Windows,强烈建议安装 Git Bash。
下载地址:https://git-scm.com/downloads
Git Bash 让你能在 Windows 上使用类 Linux 的命令行环境,大部分编程教程都基于这个环境。
3.2 安装步骤(以 Windows 为例)
整个安装过程就像安装一个手机 App 一样简单:
1安装流程图 2═══════════════════════════════════════════════════════════ 3 4 开始 5 │ 6 ▼ 7┌──────────────────┐ 8│ 步骤1:安装 Node.js │ ← 这是 Claude Code 的运行环境 9│ (版本 ≥ 18.0) │ 就像手机需要操作系统一样 10└──────┬───────────┘ 11 │ 12 ▼ 13┌──────────────────┐ 14│ 步骤2:安装 │ ← 在终端里输入一行命令即可 15│ Claude Code │ 16└──────┬───────────┘ 17 │ 18 ▼ 19┌──────────────────┐ 20│ 步骤3:验证安装 │ ← 确认安装成功 21└──────┬───────────┘ 22 │ 23 ▼ 24 完成!开始使用 25
步骤 1:安装 Node.js
Node.js 是 Claude Code 的"运行引擎"。你可以把它理解为:Node.js 是舞台,Claude Code 是在舞台上表演的演员。
1# 1. 打开浏览器,访问 https://nodejs.org 2# 2. 下载 LTS 版本(长期支持版,更稳定) 3# 3. 双击安装包,一路点击"下一步"即可 4# 4. 安装完成后,打开终端(Win+R,输入 cmd,回车) 5# 5. 输入以下命令验证安装是否成功: 6 7node --version 8# 如果安装成功,你会看到类似这样的输出: 9# v20.11.0 (版本号可能不同,只要 ≥ 18.0 就没问题) 10 11npm --version 12# 如果安装成功,你会看到类似这样的输出: 13# 10.2.4 (npm 是 Node.js 自带的包管理工具) 14
步骤 2:安装 Claude Code
打开终端,输入下面这一行命令:
1# 使用 npm 全局安装 Claude Code 2# -g 表示"全局安装",意味着你可以在电脑的任何位置使用它 3npm install -g @anthropic-ai/claude-code 4 5# 安装过程大约需要 1-2 分钟,你会看到很多行安装日志在滚动 6# 这是正常的,不用担心里面的技术细节 7
如果安装失败:99% 的情况是因为网络问题。可以尝试以下方法:
1# 方法1:使用国内镜像源(推荐,速度更快) 2npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com 3
步骤 3:验证安装
1# 在终端输入以下命令: 2claude --version 3 4# 如果看到版本号输出,说明安装成功! 5# 类似:Claude Code v2.0.0 6
3.3 首次启动与 API Key 配置
Claude Code 需要连接到 Anthropic 的 AI 服务才能工作。这需要一个"钥匙"——API Key。
比喻:API Key 就像你的门禁卡。没有它,你就进不了大楼(用不了 AI 服务)。
1获取 API Key 的流程 2═══════════════════════════════════════════════════════════ 3 4 访问 console.anthropic.com 5 │ 6 ▼ 7 注册 / 登录账号 8 │ 9 ▼ 10 进入 API Keys 页面 11 │ 12 ▼ 13 点击 "Create Key" 创建新 Key 14 │ 15 ▼ 16 ⚠️ 复制并保存好 Key!(只显示一次) 17 │ 18 ▼ 19 在终端配置 Key 20
配置方法一:环境变量(推荐)
1# 在 Git Bash 终端中输入(Windows用户推荐这种方式) 2# 把下面的 "sk-ant-xxxxx" 替换成你自己的真实的 API Key 3export ANTHROPIC_API_KEY="sk-ant-your-actual-api-key-here" 4 5# 注意:这种方式只在当前终端窗口有效,关闭窗口后需要重新设置 6# 如果你想让这个配置永久生效,继续往下看 7
配置方法二:永久配置(一劳永逸)
1# Windows PowerShell 用户 2# 以管理员身份打开 PowerShell,执行: 3[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-your-key-here", "User") 4 5# Git Bash / Mac / Linux 用户 6# 把下面这行加到你的 ~/.bashrc 或 ~/.zshrc 文件末尾 7echo 'export ANTHROPIC_API_KEY="sk-ant-your-key-here"' >> ~/.bashrc 8 9# 让配置立即生效 10source ~/.bashrc 11
配置方法三:使用 Claude Code 内置的登录命令
1# 如果你已经有 Anthropic 账号,可以直接用这个命令登录 2claude login 3 4# 这会打开浏览器,让你通过网页完成认证 5# 认证成功后,Claude Code 会自动保存你的凭证 6
3.4 验证一切就绪
1# 在终端输入: 2claude 3 4# 如果一切配置正确,你会进入 Claude Code 的交互界面 5# 你会看到一个类似这样的提示符,表示可以开始对话了: 6# 7# ╭────────────────────────────────────────────╮ 8# │ ✨ Claude Code v2.0.0 │ 9# │ Ready to help you build amazing things! │ 10# ╰────────────────────────────────────────────╯ 11# > 12
到此为止,安装就完成了!是不是比你想象中简单很多?
4. 第一次对话 —— 跟 AI 说"你好"
4.1 启动 Claude Code
有两种使用 Claude Code 的方式:
方式一:交互模式(最常用)
1# 进入你的项目目录(如果还没有项目,先创建一个空目录) 2mkdir my-first-project # 创建一个名为 my-first-project 的文件夹 3cd my-first-project # 进入这个文件夹 4 5# 启动 Claude Code 6claude 7
方式二:单次命令模式
1# 不进入交互界面,直接执行一条指令 2# -p 参数表示 "print",意思是直接打印结果 3claude -p "写一个 Hello World 的 Python 程序" 4
4.2 你的第一句对话
进入 Claude Code 后,你会看到一个提示符 >。输入你想说的话,然后按回车:
1> 你好!请用中文回复我。请解释一下你是什么,你能帮我做什么? 2
Claude Code 会回复你一段文字,介绍自己的能力和限制。
交互流程图:
1┌─────────────────────────────────────────────────────────┐ 2│ 交互模式的工作流程 │ 3├─────────────────────────────────────────────────────────┤ 4│ │ 5│ 你输入问题 │ 6│ ┌──────────────────────┐ │ 7│ │ > 帮我写一个计算器 │ │ 8│ └──────────┬───────────┘ │ 9│ │ │ 10│ ▼ │ 11│ ┌──────────────────────┐ │ 12│ │ Claude Code 分析你的 │ ← AI 理解你的意图 │ 13│ │ 需求,读取项目文件 │ │ 14│ └──────────┬───────────┘ │ 15│ │ │ 16│ ▼ │ 17│ ┌──────────────────────┐ │ 18│ │ Claude Code 生成代码 │ ← AI 创建或修改文件 │ 19│ │ 或执行相关操作 │ │ 20│ └──────────┬───────────┘ │ 21│ │ │ 22│ ▼ │ 23│ ┌──────────────────────┐ │ 24│ │ Claude Code 展示结果 │ ← AI 告诉你做了什么 │ 25│ │ 等待你的下一步指令 │ │ 26│ └──────────────────────┘ │ 27│ │ │ 28│ ▼ │ 29│ 继续对话…… │ 30│ │ 31└─────────────────────────────────────────────────────────┘ 32
4.3 基本的对话技巧
跟 Claude Code 交流不需要任何特殊技巧——就用你平时跟人聊天的方式。但有几个小窍门可以让沟通更高效:
✅ 好的提问方式:
1> 帮我用 Python 写一个计算器程序,要求支持加减乘除四种运算。 2 用户输入两个数字和运算符,程序输出计算结果。 3 代码要包含详细的中文注释。 4 5> 这段代码运行时报错了,错误信息是: 6 "NameError: name 'result' is not defined" 7 帮我分析一下原因并修复。 8 9> 我的项目里有 5 个 Java 文件,帮我找一下哪个文件里定义了 UserService 类。 10
❌ 不太好的提问方式:
1> 写代码 2 ← 太模糊了,AI 不知道你想要什么 3 4> 修复错误 5 ← 没说是什么错误,AI 无法定位问题 6 7> 帮我做个东西 8 ← 没有具体描述,AI 会困惑 9
核心原则:越具体,AI 的帮助越精准。
4.4 一些常用命令
在 Claude Code 的交互界面中,有一些特殊的"斜杠命令"(以 / 开头),它们是快捷操作:
1# ─── 基础命令 ─── 2 3/help # 显示帮助信息,列出所有可用命令 4# 用法:直接输入 /help 即可 5# 作用:查看 Claude Code 支持的所有功能和快捷命令 6 7/clear # 清空当前对话历史,开始新的话题 8# 用法:当你想切换话题或之前的对话太长时使用 9# 注意:这不会删除任何文件,只是清空对话记录 10 11/compact # 压缩对话历史,释放上下文空间 12# 用法:当对话很长,AI 响应变慢时使用 13# 作用:保留关键信息,删除冗余内容,让 AI 重新"聚焦" 14 15# ─── 会话管理 ─── 16 17/status # 查看当前会话状态 18# 显示:当前模型、对话长度、文件变更等信息 19 20/context # 查看当前上下文包含的内容 21# 显示:AI 当前"看到"了哪些信息 22 23# ─── 文件与项目 ─── 24 25/init # 初始化项目,创建 CLAUDE.md 项目说明文件 26# 用法:在项目根目录执行 /init 27# 作用:让 Claude Code 更好地理解你的项目结构和规则 28 29/add-dir # 添加一个目录到工作区 30# 用法:/add-dir src/ (将 src 目录加入关注范围) 31 32# ─── 配置与管理 ─── 33 34/config # 查看和修改 Claude Code 的设置 35# 用法:/config 进入设置页面 36 37/model # 切换使用的 AI 模型 38# 用法:/model opus (切换到 Opus 模型,能力最强) 39# /model sonnet (切换到 Sonnet 模型,速度更快) 40 41# ─── 费用与用量 ─── 42 43/cost # 查看当前会话的费用消耗 44# 用法:/cost 显示本次对话花了多少钱 45 46/usage # 查看 Token 使用量 47# Token 是 AI 处理文本的计量单位,类似电话的"分钟" 48
5. 核心概念:理解 Claude Code 的"大脑"
在深入使用之前,让我们先了解几个核心概念。这些概念就像开车前要认识的仪表盘——不需要成为工程师,但要知道每个指示灯是什么意思。
5.1 上下文(Context)—— AI 的"短期记忆"
概念解释:
Claude Code 的"上下文"就像 AI 的短期记忆。每次对话中,AI 能"记住"的内容是有限的。这个限制用 Token 来衡量。
什么是 Token?
把 Token 理解为 AI 阅读文本时的"最小单位":
- 一个中文字 ≈ 1-2 个 Token
- 一个英文单词 ≈ 1-3 个 Token
- 一张图片 ≈ 几百到几千个 Token
就像一个杯子能装的水是有限的,AI 一次能处理的内容也是有限的。
1上下文窗口示意图 2═══════════════════════════════════════════════════════════ 3 4 ┌─────────────────────────────────────────────────────┐ 5 │ 上下文窗口(Context Window) │ 6 │ Claude Opus 最大支持 100 万 Token │ 7 │ │ 8 │ ┌──────────────────────┐ │ 9 │ │ 系统提示词 │ ← 定义 AI 的角色和行为 │ 10 │ │ (System Prompt) │ 如"你是一个编程助手" │ 11 │ ├──────────────────────┤ │ 12 │ │ │ │ 13 │ │ 对话历史 │ ← 你和 AI 你来我往的记录 │ 14 │ │ (Conversation) │ 每一轮对话都在这里 │ 15 │ │ │ │ 16 │ │ • 你:帮我写代码 │ │ 17 │ │ • AI:好的,这是代码 │ │ 18 │ │ • 你:有个错误…… │ │ 19 │ │ • AI:我来修复…… │ │ 20 │ ├──────────────────────┤ │ 21 │ │ 当前请求 │ ← 你最新输入的问题 │ 22 │ │ (Current Request) │ │ 23 │ └──────────────────────┘ │ 24 └─────────────────────────────────────────────────────┘ 25 26 当上下文满了 → AI 可能会"忘记"早期的对话内容 27 解决方法 → /compact 命令压缩对话 或 /clear 清空重新开始 28
如何管理上下文:
1# 查看当前使用了多少上下文 2/context 3 4# 如果对话太长,压缩上下文(保留关键信息,删除冗余) 5/compact 6 7# 完全开始新话题 8/clear 9
5.2 Token —— AI 的"计费单位"
概念解释:
Token 就像电话的"分钟数"——你用得越多,费用越高。但完全在你的可控范围内。
1Token 的直观理解 2═══════════════════════════════════════════════════════════ 3 4 中文:"你好世界" ≈ 4 个 Token 5 英文:"Hello World" ≈ 2 个 Token 6 一句普通的中文问句 ≈ 20-50 个 Token 7 一个 100 行的 Python 文件 ≈ 800-1500 个 Token 8 一个中等规模的项目(100个文件) ≈ 50万-200万 Token 9 10 费用参考(以 Claude Opus 为例): 11 ┌─────────────────────────────────────────────┐ 12 │ 输入(你发给 AI 的内容):$5 / 100万 Token │ 13 │ 输出(AI 回复的内容): $25 / 100万 Token │ 14 │ │ 15 │ 换句话说: │ 16 │ • 问一个问题 ≈ 几分钱 │ 17 │ • 写一个完整功能 ≈ 几毛钱 │ 18 │ • 完成一个项目 ≈ 几块钱到几十块钱 │ 19 └─────────────────────────────────────────────┘ 20
如何查看费用:
1# 在 Claude Code 中随时查看当前会话的费用 2/cost 3 4# 输出示例: 5# Total cost: $0.42 6# Input tokens: 45,230 7# Output tokens: 2,156 8
5.3 工具(Tools)—— AI 的"手和脚"
概念解释:
如果 AI 的智能是它的大脑,那工具就是它的"手和脚"。没有工具,AI 只能"说"不能"做"。Claude Code 内置了一系列工具,让 AI 能够实际操作你的项目。
1Claude Code 的内置工具一览 2═══════════════════════════════════════════════════════════ 3 4 ┌─────────────────────────────────────────────────────────┐ 5 │ 工具清单 │ 6 ├───────────────┬─────────────────────────────────────────┤ 7 │ 工具名称 │ 作用(用人话解释) │ 8 ├───────────────┼─────────────────────────────────────────┤ 9 │ Read │ "读文件"——就像你打开文件查看内容 │ 10 │ │ 可以读代码、读文档、读图片、读 PDF │ 11 ├───────────────┼─────────────────────────────────────────┤ 12 │ Write │ "写文件"——创建新文件或覆盖已有文件 │ 13 │ │ 就像你在编辑器里新建文件并写入内容 │ 14 ├───────────────┼─────────────────────────────────────────┤ 15 │ Edit │ "改文件"——精确修改文件中的某段内容 │ 16 │ │ 不是整个重写,而是精准替换 │ 17 ├───────────────┼─────────────────────────────────────────┤ 18 │ Bash │ "执行命令"——在终端里运行指令 │ 19 │ │ 可以编译代码、安装依赖、运行测试 │ 20 ├───────────────┼─────────────────────────────────────────┤ 21 │ Glob │ "找文件"——按文件名模式搜索 │ 22 │ │ 比如找所有 .java 文件或所有 test*.js │ 23 ├───────────────┼─────────────────────────────────────────┤ 24 │ Grep │ "搜内容"——在文件内容中搜索关键词 │ 25 │ │ 比如找所有包含"password"的代码行 │ 26 ├───────────────┼─────────────────────────────────────────┤ 27 │ WebFetch │ "抓网页"——获取网页内容 │ 28 │ │ 可以读取在线文档、API 说明等 │ 29 ├───────────────┼─────────────────────────────────────────┤ 30 │ WebSearch │ "搜网页"——搜索互联网 │ 31 │ │ 查找最新信息、技术方案等 │ 32 ├───────────────┼─────────────────────────────────────────┤ 33 │ Task │ "多任务"——同时处理多个独立工作 │ 34 │ │ 比如同时搜索多个目录或处理多个文件 │ 35 └───────────────┴─────────────────────────────────────────┘ 36
工具是如何工作的?
你不需要手动调用这些工具——你只需要用自然语言说出你的需求,Claude Code 会自动选择合适的工具。
1 你说:"帮我把项目里所有的 TODO 注释找出来" 2 │ 3 ▼ 4 Claude Code 内部自动执行: 5 ┌──────────────────────────────────────┐ 6 │ 1. 分析需求:"找 TODO 注释" │ 7 │ 2. 选择工具:用 Grep 工具搜索 │ 8 │ 3. 执行:grep "TODO" 遍历所有文件 │ 9 │ 4. 整理结果:把找到的 TODO 列给你看 │ 10 │ 5. 回复:"找到了 12 个 TODO……" │ 11 └──────────────────────────────────────┘ 12
5.4 权限控制 —— 安全的"门禁"
Claude Code 在执行某些操作前会征求你的同意,这是为了保护你的项目安全。
1权限级别说明 2═══════════════════════════════════════════════════════════ 3 4 ┌─────────────────────────────────────────────────────────┐ 5 │ 操作类型 │ 是否需要你确认 │ 示例 │ 6 ├──────────────────────┼─────────────────┼────────────────┤ 7 │ 读文件 │ 不需要(自动) │ "看看这个文件" │ 8 │ 搜索内容 │ 不需要(自动) │ "搜一下 TODO" │ 9 │ 写新文件 │ 需要确认 │ "创建一个文件" │ 10 │ 修改已有文件 │ 需要确认 │ "修改这行代码" │ 11 │ 执行命令 │ 需要确认 │ "运行 npm test"│ 12 │ 访问外部网站 │ 需要确认 │ "查看这个网页" │ 13 │ 删除文件 │ 需要确认 │ "删除这个文件" │ 14 └──────────────────────┴─────────────────┴────────────────┘ 15 16 你可以选择: 17 • 允许(Allow) —— 仅这次 18 • 总是允许(Always Allow)—— 同类型操作不再询问 19 • 拒绝(Deny) —— 不允许执行 20
6. 基础操作:读、写、改、搜
现在你已经了解了基本概念,让我们动手实操吧!
6.1 读取文件 —— “帮我看看这个”
这是最基础的操作。你可以让 Claude Code 读取各种类型的文件。
实用场景一:查看代码文件
1场景:你刚接手一个项目,想了解某个文件做了什么 2 3你:帮我看看 src/main/java/com/example/UserController.java 这个文件, 4 解释一下每个方法是做什么的,用中文说明。 5 6Claude Code 会: 71. 自动使用 Read 工具读取文件 82. 分析代码结构 93. 用通俗的中文解释每个方法的作用 104. 可能还会指出潜在的问题或改进建议 11
实用场景二:分析图片内容
1场景:产品经理给了你一张 UI 设计图,让你实现 2 3你:看看这张设计图 design.png,告诉我这是一个什么样的页面布局。 4 5Claude Code 会: 61. 读取图片文件 72. 分析图片中的 UI 元素 83. 描述布局结构 94. 甚至可以帮你生成对应的 HTML/CSS 代码 10
6.2 搜索代码 —— “帮我找到那个”
当项目代码量很大时,手动翻找文件就像大海捞针。Claude Code 能帮你在几秒钟内找到你需要的内容。
实用场景一:搜索文件内容
1场景:你想找到所有调用了 getUserById 方法的地方 2 3你:帮我在整个项目中搜索所有调用 getUserById 的地方, 4 列出文件名和行号。 5 6Claude Code 会: 71. 自动使用 Grep 工具搜索 82. 返回所有匹配的行及其位置 93. 你可以点击行号直接跳转 10
实用场景二:按文件名查找
1场景:你记得有个文件名叫 UserService 但忘了在哪个目录 2 3你:帮我找到所有文件名包含 UserService 的 Java 文件。 4 5Claude Code 会: 61. 使用 Glob 工具按文件名模式匹配 72. 列出所有匹配的文件路径 8
6.3 修改代码 —— “帮我改一下”
这是 Claude Code 的杀手级功能——精确修改代码,不多不少。
代码修改示例:
1场景:你想给 UserService 类添加一个新方法 2 3你:在 src/main/java/com/example/UserService.java 中 4 添加一个 findByEmail 方法,参数是 String email, 5 返回 Optional<User>。 6 7Claude Code 会: 81. 读取 UserService.java 的内容 92. 分析类的结构 103. 在合适的位置插入新方法 114. 确保代码格式和项目风格一致 125. 展示修改后的结果让你确认 13
修改前后对比示意:
1// ========== 修改前 ========== 2public class UserService { 3 4 public Optional<User> findById(Long id) { 5 // 根据 ID 查找用户 6 return userRepository.findById(id); 7 } 8} 9 10// ========== 修改后 ========== 11public class UserService { 12 13 public Optional<User> findById(Long id) { 14 // 根据 ID 查找用户 15 return userRepository.findById(id); 16 } 17 18 // 【新增方法】根据邮箱地址查找用户 19 // @param email 用户的邮箱地址 20 // @return 包含用户的 Optional 对象,如果找不到则为空 21 public Optional<User> findByEmail(String email) { 22 // 调用 Repository 层的 findByEmail 方法查询数据库 23 return userRepository.findByEmail(email); 24 } 25} 26
6.4 执行命令 —— “帮我运行一下”
你不需要记住复杂的命令行指令,直接告诉 Claude Code 你想做什么就行。
1# 场景:你想编译一个 Java 项目 2 3# 传统方式(你需要记住命令): 4mvn clean compile -DskipTests 5 6# Claude Code 方式(说人话就行): 7> 帮我编译这个 Java 项目,跳过测试。 8 9# Claude Code 会自动执行: 10# mvn clean compile -DskipTests 11# 然后把编译结果翻译成你能看懂的中文告诉你 12
执行命令的完整流程:
1你说:"帮我看看这个 Spring Boot 项目能不能正常启动" 2 │ 3 ▼ 4┌─────────────────────────────────────────────────────────┐ 5│ Claude Code 内部处理流程 │ 6│ │ 7│ 1. 分析项目类型 │ 8│ → 发现 pom.xml → 判定为 Maven 管理的 Spring Boot 项目 │ 9│ │ 10│ 2. 确定启动命令 │ 11│ → mvn spring-boot:run │ 12│ │ 13│ 3. 请求你的确认 │ 14│ → "我将执行 mvn spring-boot:run,是否允许?" │ 15│ │ 16│ 4. 执行命令并捕获输出 │ 17│ → 启动日志会显示在终端 │ 18│ │ 19│ 5. 分析结果 │ 20│ → 如果启动成功:告诉你端口号和访问地址 │ 21│ → 如果启动失败:帮你分析错误原因并修复 │ 22└─────────────────────────────────────────────────────────┘ 23
7. 实战演练一:用 Claude Code 写一个网页
理论学完了,让我们动手做一个实际的东西!我们将从零开始,用 Claude Code 创建一个漂亮的个人主页。
7.1 项目准备
1# 1. 创建项目文件夹 2mkdir my-homepage 3cd my-homepage 4 5# 2. 启动 Claude Code 6claude 7
7.2 跟 Claude Code 对话开发
现在,把下面这些"对话"逐条输入给 Claude Code,看看会发生什么:
第一步:提出需求
1> 帮我创建一个个人主页,要求: 2 1. 只用一个 index.html 文件(把 CSS 和 JS 都写在里面) 3 2. 设计要简洁大方,使用现代的设计风格 4 3. 包含以下内容: 5 - 顶部导航栏:首页、关于我、技能、联系方式 6 - 主页横幅区:我的名字(张三)、一句话介绍 7 - 关于我区域:一段个人简介 8 - 技能展示区:用卡片展示我会的技能 9 - 联系方式区:邮箱、GitHub、微信 10 - 底部版权信息 11 4. 颜色方案用蓝色系 12 5. 代码中加上详细的中文注释,我是初学者 13
第二步:预览效果
1# Claude Code 写完后,帮我在浏览器里打开看看 2> 帮我在浏览器里打开这个 index.html 文件 3
第三步:修改优化
1> 我觉得背景色太深了,帮我改成浅蓝色 2> 导航栏的字体再大一些 3> 把技能卡片改成 3 列布局,现在太宽了 4
7.3 完整的代码示例(含详细注释)
下面就是 Claude Code 帮你生成的代码。注意看里面的注释——每一行关键代码都有解释:
1<!DOCTYPE html> 2<!-- 这行告诉浏览器:这是一个 HTML5 文档 --> 3<html lang="zh-CN"> 4<!-- lang="zh-CN" 表示页面主要语言是简体中文 --> 5 6<head> 7 <!-- head 标签包含页面的"元信息"——用户看不到,但浏览器需要 --> 8 <meta charset="UTF-8"> 9 <!-- 设置字符编码为 UTF-8,这样中文才能正常显示 --> 10 11 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 12 <!-- 让页面在手机上也能正常显示(响应式设计的基础) --> 13 14 <title>张三 - 个人主页</title> 15 <!-- 浏览器标签页上显示的标题 --> 16 17 <style> 18 /* ========== 全局样式 ========== */ 19 /* * 是通配符,选中所有元素 */ 20 * { 21 margin: 0; 22 /* 清除默认的外边距 */ 23 padding: 0; 24 /* 清除默认的内边距 */ 25 box-sizing: border-box; 26 /* 让宽高计算方式更直观 */ 27 } 28 29 /* body 是页面主体,所有可见内容都在里面 */ 30 body { 31 font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 32 /* 设置字体,从前往后依次尝试 */ 33 line-height: 1.6; 34 /* 行高 1.6 倍,让文字不拥挤 */ 35 color: #333; 36 /* 文字颜色:深灰色(比纯黑柔和) */ 37 background-color: #f0f4f8; 38 /* 背景色:浅蓝灰色 */ 39 } 40 41 /* ========== 导航栏样式 ========== */ 42 /* nav 是 HTML5 的语义化标签,表示导航区域 */ 43 nav { 44 background-color: #1a56db; 45 /* 导航栏背景:深蓝色 */ 46 padding: 16px 0; 47 /* 上下内边距 16px,左右 0 */ 48 position: sticky; 49 /* 粘性定位:滚动时导航栏固定在顶部 */ 50 top: 0; 51 /* 距离顶部 0px */ 52 z-index: 100; 53 /* 层级最高,确保不被其他元素遮挡 */ 54 } 55 56 /* 导航栏内部的容器,用于控制内容宽度 */ 57 nav .container { 58 max-width: 1000px; 59 /* 最大宽度 1000px */ 60 margin: 0 auto; 61 /* 上下 0,左右自动(居中) */ 62 display: flex; 63 /* 使用弹性布局 */ 64 justify-content: space-between; 65 /* 子元素两端对齐 */ 66 align-items: center; 67 /* 子元素垂直居中 */ 68 } 69 70 /* 网站 Logo/标题 */ 71 nav .logo { 72 color: white; 73 /* 文字白色 */ 74 font-size: 22px; 75 /* 字体大小 */ 76 font-weight: bold; 77 /* 加粗 */ 78 } 79 80 /* 导航链接列表 */ 81 nav ul { 82 list-style: none; 83 /* 去掉列表的小圆点 */ 84 display: flex; 85 /* 让列表项横向排列 */ 86 gap: 24px; 87 /* 每项之间的间距 */ 88 } 89 90 /* 导航链接样式 */ 91 nav ul li a { 92 color: rgba(255, 255, 255, 0.85); 93 /* 半透明白色 */ 94 text-decoration: none; 95 /* 去掉下划线 */ 96 font-size: 15px; 97 transition: color 0.3s; 98 /* 颜色变化有 0.3 秒过渡动画 */ 99 } 100 101 /* 鼠标悬停在导航链接上时的效果 */ 102 nav ul li a:hover { 103 color: white; 104 /* 变为纯白色 */ 105 } 106 107 /* ========== 横幅区样式 ========== */ 108 .hero { 109 background: linear-gradient(135deg, #1a56db 0%, #4f8cf7 100%); 110 /* 渐变背景:从深蓝到浅蓝,135度角 */ 111 color: white; 112 padding: 80px 0; 113 /* 上下 80px 的内边距,让横幅更高 */ 114 text-align: center; 115 /* 文字居中 */ 116 } 117 118 .hero h1 { 119 font-size: 40px; 120 /* 主标题大号字体 */ 121 margin-bottom: 12px; 122 } 123 124 .hero p { 125 font-size: 18px; 126 opacity: 0.9; 127 /* 略微透明 */ 128 } 129 130 /* ========== 通用容器和区块样式 ========== */ 131 .container { 132 max-width: 1000px; 133 margin: 0 auto; 134 padding: 0 20px; 135 /* 左右保留 20px 安全距离 */ 136 } 137 138 section { 139 padding: 60px 0; 140 /* 每个区块上下 60px 间距 */ 141 } 142 143 section h2 { 144 text-align: center; 145 font-size: 28px; 146 margin-bottom: 36px; 147 color: #1a56db; 148 } 149 150 /* ========== 关于我区域 ========== */ 151 .about p { 152 font-size: 16px; 153 text-align: center; 154 max-width: 680px; 155 margin: 0 auto; 156 /* 段落居中,最大宽度 680px,阅读更舒适 */ 157 } 158 159 /* ========== 技能卡片区域 ========== */ 160 .skills-grid { 161 display: grid; 162 /* 使用网格布局 */ 163 grid-template-columns: repeat(3, 1fr); 164 /* 3 列,每列等宽 */ 165 gap: 20px; 166 /* 卡片之间的间距 */ 167 } 168 169 /* 单个技能卡片 */ 170 .skill-card { 171 background: white; 172 /* 白色背景 */ 173 padding: 28px; 174 border-radius: 10px; 175 /* 圆角 */ 176 text-align: center; 177 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08); 178 /* 投影阴影:水平0 垂直2px 模糊10px 黑色8%透明度 */ 179 transition: transform 0.3s; 180 /* 悬停动画 */ 181 } 182 183 .skill-card:hover { 184 transform: translateY(-4px); 185 /* 鼠标悬停时向上移动 4px,有"浮起来"的感觉 */ 186 } 187 188 .skill-card .icon { 189 font-size: 36px; 190 /* 图标(emoji)的尺寸 */ 191 margin-bottom: 12px; 192 } 193 194 .skill-card h3 { 195 margin-bottom: 8px; 196 color: #1a56db; 197 } 198 199 /* ========== 联系方式区域 ========== */ 200 .contact-info { 201 text-align: center; 202 font-size: 16px; 203 } 204 205 .contact-info p { 206 margin-bottom: 8px; 207 } 208 209 /* ========== 页脚样式 ========== */ 210 footer { 211 background-color: #1a2938; 212 /* 深色背景 */ 213 color: #9ca3af; 214 /* 灰色文字 */ 215 text-align: center; 216 padding: 20px 0; 217 font-size: 14px; 218 } 219 </style> 220</head> 221 222<body> 223 224 <!-- ========== 导航栏 ========== --> 225 <nav> 226 <div class="container"> 227 <!-- 左侧 Logo --> 228 <span class="logo">张三</span> 229 <!-- 右侧导航链接 --> 230 <ul> 231 <!-- href="#" 表示点击后跳转到当前页面的指定位置 --> 232 <li><a href="#home">首页</a></li> 233 <li><a href="#about">关于我</a></li> 234 <li><a href="#skills">技能</a></li> 235 <li><a href="#contact">联系方式</a></li> 236 </ul> 237 </div> 238 </nav> 239 240 <!-- ========== 主页横幅 ========== --> 241 <section class="hero" id="home"> 242 <h1>张三</h1> 243 <p>热爱技术的全栈开发者 | 终身学习者 | 开源爱好者</p> 244 </section> 245 246 <!-- ========== 关于我 ========== --> 247 <section class="about" id="about"> 248 <div class="container"> 249 <h2>关于我</h2> 250 <p> 251 你好!我是张三,一名拥有 3 年经验的全栈开发者。 252 我热爱用代码创造有价值的软件产品,喜欢学习新技术。 253 工作之余,我活跃在 GitHub 开源社区,参与过多个知名项目的贡献。 254 我相信技术的力量可以让世界变得更好。 255 </p> 256 </div> 257 </section> 258 259 <!-- ========== 技能展示 ========== --> 260 <section id="skills"> 261 <div class="container"> 262 <h2>我的技能</h2> 263 <div class="skills-grid"> 264 <!-- 技能卡片 1 --> 265 <div class="skill-card"> 266 <div class="icon">☕</div> 267 <h3>Java</h3> 268 <p>精通 Java 后端开发,Spring Boot 框架</p> 269 </div> 270 <!-- 技能卡片 2 --> 271 <div class="skill-card"> 272 <div class="icon">🐍</div> 273 <h3>Python</h3> 274 <p>熟练使用 Python 进行数据处理和 Web 开发</p> 275 </div> 276 <!-- 技能卡片 3 --> 277 <div class="skill-card"> 278 <div class="icon">🌐</div> 279 <h3>前端开发</h3> 280 <p>掌握 HTML、CSS、JavaScript 和 Vue.js</p> 281 </div> 282 </div> 283 </div> 284 </section> 285 286 <!-- ========== 联系方式 ========== --> 287 <section id="contact"> 288 <div class="container"> 289 <h2>联系我</h2> 290 <div class="contact-info"> 291 <p>📧 邮箱:zhangsan@example.com</p> 292 <p>🐙 GitHub:github.com/zhangsan</p> 293 <p>💬 微信:zhangsan_dev</p> 294 </div> 295 </div> 296 </section> 297 298 <!-- ========== 页脚 ========== --> 299 <footer> 300 <div class="container"> 301 <p>© 2026 张三 | 保留所有权利</p> 302 <!-- © 是版权符号 © --> 303 </div> 304 </footer> 305 306</body> 307</html> 308
7.4 从这个练习中学到了什么
通过这个小项目,你应该已经体验到了:
- 你只需描述"要什么",不需要写具体代码 —— Claude Code 帮你实现
- 你可以随时修改 —— 跟 AI 说"这里改一下"就行
- 所有的代码都有注释 —— AI 默认会帮你写好注释
- 修改是迭代的 —— 先做一个版本,然后逐步优化
8. 实战演练二:管理一个完整项目
上一章我们写了一个简单的网页。这一章,让我们来管理一个真正的多文件项目。
8.1 项目初始化 —— CLAUDE.md 文件
CLAUDE.md 是一个非常重要的文件。它就像是给 Claude Code 的"项目说明书"。
比喻:如果 Claude Code 是一个新加入团队的员工,CLAUDE.md 就是你给他的《新员工手册》——告诉他项目是做什么的、用什么技术栈、有什么规范。
如何创建 CLAUDE.md:
1# 在项目根目录下执行 2claude 3> /init 4
Claude Code 会自动扫描你的项目,生成一份 CLAUDE.md 文件。你也可以手动编写它。
一个 OCP 项目的 CLAUDE.md 示例:
1# OCP 电商平台项目 2 3## 项目简介 4这是一个基于 Spring Boot 的在线商城系统,提供商品浏览、购物车、下单等功能。 5 6## 技术栈 7- 后端框架:Spring Boot 2.7.x 8- 构建工具:Maven 9- 数据库:MySQL 8.0 + MyBatis-Plus 10- 缓存:Redis 11- Java 版本:JDK 11 12 13## 项目结构 14
src/
├── main/
│ ├── java/com/example/ocp/
│ │ ├── controller/ # 控制器层 - 处理 HTTP 请求
│ │ ├── service/ # 服务层 - 业务逻辑
│ │ ├── mapper/ # 数据访问层 - 操作数据库
│ │ ├── entity/ # 实体类 - 数据库表对应
│ │ └── config/ # 配置类
│ └── resources/
│ ├── application.yml # 主配置文件
│ └── mapper/ # MyBatis XML 映射文件
└── test/ # 测试代码
1## 编码规范 2- 类名使用大驼峰命名法,如 UserController 3- 方法名和变量名使用小驼峰命名法,如 findUserById 4- 所有 public 方法必须有 Javadoc 注释 5- Controller 层只做参数校验和转发,不写业务逻辑 6- 使用 Lombok 简化 getter/setter 7 8## 运行方式 9```bash 10# 编译 11mvn clean compile 12 13# 运行测试 14mvn test 15 16# 启动项目 17mvn spring-boot:run 18# 启动后访问 http://localhost:8080 19
1### 8.2 项目中 Claude Code 的日常工作流 2 3有了 CLAUDE.md 后,Claude Code 就"认识"你的项目了。下面是日常工作中最常用的几种交互模式: 4 5
Claude Code 项目工作流程图
═══════════════════════════════════════════════════════════
收到新需求
│
▼
┌──────────────────┐
│ Claude Code 读取 │ ← 先理解需求,再看看现有代码
│ CLAUDE.md + │
│ 相关代码文件 │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Claude Code 制定 │ ← 告诉你它打算怎么做
│ 实现方案 │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ 你确认方案? │ ← 你可以要求修改方案
└──┬───────────┬───┘
│ │
同意 不同意 → 返回修改方案
│
▼
┌──────────────────┐
│ Claude Code 编写 │ ← 创建/修改代码文件
│ 代码 │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Claude Code 运行 │ ← 编译、测试、验证
│ 测试 │
└──────┬───────────┘
│
▼
测试通过?
│ │
是 否 → Claude Code 分析错误 → 自动修复 → 重新测试
│
▼
┌──────────────────┐
│ 完成! │
│ Claude Code 总结 │
│ 做了什么修改 │
└──────────────────┘
1### 8.3 实际工作场景演示 2 3让我们模拟几个真实的开发场景: 4 5**场景一:添加新功能** 6 7
你:根据 CLAUDE.md 中的项目规范,请帮我实现一个"用户注册"功能。
要求:
1 1. 在 UserController 中添加 POST /api/users/register 接口 2 2. 在 UserService 中添加 register 方法 3 3. 注册时校验邮箱格式和密码长度(至少6位) 4 4. 密码需要用 BCrypt 加密后存储 5 5. 返回格式统一使用 Result 类包装 6
Claude Code 会:
- 读取 CLAUDE.md 了解项目结构和规范
- 读取现有的 UserController 和 UserService 代码
- 读取 Result 类的定义
- 在正确的位置添加代码
- 确保代码风格和现有代码一致
- 帮你添加必要的依赖(如 spring-security-crypto 用于 BCrypt)
1**场景二:修复 Bug** 2 3
你:启动项目时出现以下错误,帮我分析和修复:
“Error creating bean with name ‘userMapper’:
Failed to introspect bean class
[com.example.ocp.mapper.UserMapper]”
Claude Code 会:
- 读取 UserMapper 接口的代码
- 读取相关的 XML 映射文件
- 检查 application.yml 中的 MyBatis 配置
- 分析错误原因
- 提出修复方案并执行
1**场景三:代码重构** 2 3
你:UserService 里的代码太长了,有 500 多行。
帮我把里面的业务逻辑拆分成多个小的 Service 类,
但要确保不改变现有的功能。
Claude Code 会:
- 分析 UserService 中的所有方法
- 按功能分组(如用户管理、权限管理、资料管理)
- 创建新的 Service 类
- 把方法迁移到对应的新类中
- 更新所有引用了旧方法的地方
- 运行测试确保重构没有破坏功能
1### 8.4 Git 版本管理 2 3Claude Code 可以帮助你管理代码版本(使用 Git),即使你完全不懂 Git 命令: 4 5
你:帮我把今天的修改提交到 Git,提交信息写"新增用户注册功能"
Claude Code 会:
- git add . (添加所有修改的文件到暂存区)
- git commit -m “…” (创建一次提交,并附上说明信息)
你:帮我把代码推送到远程仓库
Claude Code 会:
- git push (上传到 GitHub / GitLab 等远程仓库)
1--- 2 3## 9. 高级功能:让 Claude Code 更强大 4 5当你掌握了基础功能后,这些高级功能可以帮助你进一步提升效率。 6 7### 9.1 MCP(模型上下文协议)—— 连接外部世界 8 9**概念解释:** 10 11MCP 的全称是 Model Context Protocol(模型上下文协议)。用人话来说——**它是让 Claude Code 能连接各种外部工具和服务的"万能插头"**。 12 13> **比喻**:你的手机只有一个充电口,但是通过不同的转接头,你可以连 U 盘、显示器、键盘…… MCP 就是 AI 世界的那个"万能转接头"。 14 15
没有 MCP 的 Claude Code:
┌──────────┐ ┌──────────┐
│ Claude │ ───→ │ 你的本地 │ ← 只能操作本地的文件
│ Code │ │ 项目文件 │
└──────────┘ └──────────┘
有了 MCP 的 Claude Code:
┌──────────┐ ┌──────────┐
│ Claude │ ───→ │ 本地文件 │
│ Code │ └──────────┘
│ │ ┌──────────┐
│ │ ───→ │ GitHub │ ← 可以操作 GitHub 仓库
│ │ └──────────┘
│ │ ┌──────────┐
│ │ ───→ │ 数据库 │ ← 可以查询数据库
│ │ └──────────┘
│ │ ┌──────────┐
│ │ ───→ │ Slack │ ← 可以发送消息
└──────────┘ └──────────┘
1**MCP 的常见应用:** 2 3| MCP 服务 | 能让 Claude Code 做什么 | 4|---------|------------------------| 5| GitHub MCP | 创建 Issue、提交 PR、查看代码变更 | 6| 数据库 MCP | 直接查询数据库、执行 SQL | 7| Jira MCP | 查看/创建/更新任务 | 8| Slack MCP | 发送消息到频道 | 9| 文件系统 MCP | 访问远程服务器上的文件 | 10 11### 9.2 Skills(技能)—— 给 AI 安装"专业插件" 12 13**概念解释:** 14 15Skills 就像给 Claude Code 安装的各种"专业 App"。比如说,默认的 Claude Code 什么都能做,但如果你要处理 Excel 文件,装了 "xlsx" 这个 Skill 后,它会变得更专业。 16 17
Skills 的作用
═══════════════════════════════════════════════════════════
默认 Claude Code 安装了专用 Skills 的 Claude Code
┌─────────────────┐ ┌─────────────────────────────┐
│ 编程 ★★★★☆ │ │ 编程 ★★★★☆ │
│ 写文档 ★★★☆☆ │ │ 写文档 ★★★★★ │
│ Excel ★★☆☆☆ │ │ Excel 处理 +xlsx ★★★★★ │
│ PPT ★★☆☆☆ │ │ PPT 制作 +pptx ★★★★★ │
│ PDF ★★☆☆☆ │ │ PDF 处理 +pdf ★★★★★ │
│ 前端设计 ★★★☆☆ │ │ 前端设计 +skill ★★★★★ │
└─────────────────┘ └─────────────────────────────┘
1**如何在 Claude Code 中使用 Skills:** 2 3Skills 的配置存储在 `.claude/settings.json` 文件中。你可以在这个文件中声明要启用的 Skills: 4 5```json 6{ 7 "skills": [ 8 "xlsx", // Excel 处理技能 9 "docx", // Word 处理技能 10 "pptx", // PowerPoint 处理技能 11 "pdf" // PDF 处理技能 12 ] 13} 14
这些内置 Skills 开箱即用,不需要额外安装。当你的任务涉及相关文件类型时,Claude Code 会自动激活对应的技能。
9.3 Hooks(钩子)—— 自动化工作流
概念解释:
Hooks(钩子)让你可以在 Claude Code 执行某些操作之前或之后自动触发自定义行为。比如:
- “每次 AI 修改代码后,自动运行测试”
- “每次对话开始时,自动加载项目信息”
- “每次 AI 准备删除文件时,弹出一个更醒目的警告”
比喻:Hooks 就像你给 AI 助理设置的"自动提醒"——“出门前别忘了关窗”、“睡觉前记得锁门”。
一个实用的 Hook 示例:
1// 在 .claude/settings.json 中配置 2{ 3 "hooks": { 4 // PostToolUse:在 AI 使用某个工具后触发 5 "PostToolUse": [ 6 { 7 // 匹配器:当 AI 修改了 Java 文件时触发 8 "matcher": "Edit", 9 // 钩子:自动格式化代码 10 "hooks": [ 11 { 12 "type": "command", 13 // 执行这个命令来格式化刚修改的 Java 代码 14 "command": "mvn spotless:apply" 15 } 16 ] 17 } 18 ] 19 } 20} 21
常用 Hook 场景:
1场景对照表 2═══════════════════════════════════════════════════════════ 3 4 触发时机 │ 可以做什么 5 ──────────────────┼───────────────────────────────────── 6 对话开始时 │ 加载项目信息、检查环境 7 工具使用前 │ 额外安全检查、记录日志 8 工具使用后 │ 自动格式化、运行测试、记录变更 9 AI 回复后 │ 发送通知、触发 CI/CD 10 对话结束时 │ 清理临时文件、生成工作报告 11 文件被修改前 │ 自动备份原文件 12
9.4 多模型切换 —— 选择适合的"大脑"
Claude Code 支持多种 AI 模型,它们在能力、速度、价格上有不同的侧重:
1模型选择指南 2═══════════════════════════════════════════════════════════ 3 4 ┌─────────────────────────────────────────────────────────┐ 5 │ 模型 │ 适合场景 │ 特点 │ 6 ├────────────────┼────────────────────┼──────────────────┤ 7 │ Opus 4.8 │ 最复杂的任务 │ 最聪明、最贵 │ 8 │ (旗舰模型) │ 大型项目重构 │ 适合"深度思考" │ 9 │ │ 复杂架构设计 │ │ 10 ├────────────────┼────────────────────┼──────────────────┤ 11 │ Sonnet 4.6 │ 日常开发 │ 智能与速度的平衡 │ 12 │ (推荐日常用) │ 写代码、修 Bug │ 性价比最高 │ 13 │ │ 中小型项目 │ │ 14 ├────────────────┼────────────────────┼──────────────────┤ 15 │ Haiku 4.5 │ 简单任务 │ 最快、最便宜 │ 16 │ (轻量模型) │ 代码分类、格式化 │ 适合高频简单操作 │ 17 │ │ 简单问答 │ │ 18 └────────────────┴────────────────────┴──────────────────┘ 19 20 切换命令: 21 /model opus → 切换到 Opus(处理复杂任务时) 22 /model sonnet → 切换到 Sonnet(日常开发,默认推荐) 23 /model haiku → 切换到 Haiku(执行简单重复任务时) 24
9.5 Workflows(工作流)—— 多 AI 并行工作
概念解释:
当你有一个大任务时,可以把它拆分成多个小任务,让多个 AI 同时工作——就像把一个大项目分配给多个员工同时做。
1单个 AI 处理大项目: 2┌────────────────────────────────────────────────────┐ 3│ AI 一个人干活 │ 4│ 任务1 → 任务2 → 任务3 → 任务4 → 任务5 │ 5│ 耗时:所有任务的时间之和 │ 6└────────────────────────────────────────────────────┘ 7 8Workflow 多 AI 并行: 9┌────────────────────────────────────────────────────┐ 10│ AI-1 → 任务1 │ 11│ AI-2 → 任务2 ← 所有 AI 同时工作 │ 12│ AI-3 → 任务3 │ 13│ AI-4 → 任务4 │ 14│ AI-5 → 任务5 │ 15│ 耗时:最慢的一个任务的时间 │ 16└────────────────────────────────────────────────────┘ 17
什么时候用 Workflow:
- 需要审查大量代码时(每个 AI 审查一部分)
- 需要搜索多个不同方向时
- 需要同时处理多个独立文件时
- 需要对同一个问题进行多角度分析时
注意:Workflow 是一个高级功能,涉及复杂的编排逻辑。作为入门用户,你不需要手动创建 Workflow。当你的任务确实需要并行处理时,Claude Code 会自动建议或执行并行策略。
10. OCP 项目实战指南
这一章是本教程的"终极挑战"——用 Claude Code 从零开始完成一个 OCP(Online Commerce Platform,在线商务平台)项目。
10.1 OCP 项目是什么?
OCP 是一个典型的企业级 Java Web 项目。它包含了现代 Web 应用的大部分要素:
1OCP 项目架构概览 2═══════════════════════════════════════════════════════════ 3 4 ┌─────────────────────────────────────────────────────────┐ 5 │ 浏览器(前端) │ 6 │ HTML + CSS + JavaScript │ 7 └────────────────────────┬────────────────────────────────┘ 8 │ HTTP 请求 9 ▼ 10 ┌─────────────────────────────────────────────────────────┐ 11 │ Spring Boot 后端 │ 12 │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 13 │ │Controller│→│ Service │→│ Mapper │ │ 14 │ │ 接收请求 │ │ 处理业务 │ │ 访问数据库│ │ 15 │ └──────────┘ └──────────┘ └────┬─────┘ │ 16 └────────────────────────────────────┼────────────────────┘ 17 │ 18 ┌───────────┴───────────┐ 19 ▼ ▼ 20 ┌─────────────┐ ┌─────────────┐ 21 │ MySQL │ │ Redis │ 22 │ 数据库 │ │ 缓存 │ 23 │ 存数据 │ │ 加速访问 │ 24 └─────────────┘ └─────────────┘ 25
10.2 项目准备:让 Claude Code 理解 OCP
第一步:创建项目骨架
1# 在 Claude Code 中输入以下内容: 2 3> 帮我创建一个标准的 Spring Boot 项目骨架,使用 Maven 管理。 4 项目名为 ocp-platform,包名为 com.example.ocp。 5 要求: 6 1. Java 版本使用 JDK 11 7 2. Spring Boot 版本使用 2.7.x 8 3. 包含以下依赖: 9 - Spring Web(用于开发 REST API) 10 - MyBatis-Plus(简化数据库操作) 11 - MySQL Connector(连接 MySQL 数据库) 12 - Lombok(简化 Java 代码) 13 - Spring Boot Validation(参数校验) 14 4. 创建标准的项目目录结构 15 5. 创建基础的配置文件 application.yml 16 6. 创建基础的工具类(如统一的响应格式 Result 类) 17
Claude Code 会帮你创建如下目录结构:
1ocp-platform/ 2├── pom.xml # Maven 项目配置文件 3├── CLAUDE.md # Claude Code 项目说明书 4├── src/ 5│ ├── main/ 6│ │ ├── java/com/example/ocp/ 7│ │ │ ├── OcpApplication.java # Spring Boot 启动类 8│ │ │ ├── controller/ # 控制器包 9│ │ │ ├── service/ # 服务层包 10│ │ │ │ └── impl/ # 服务实现类 11│ │ │ ├── mapper/ # 数据访问层 12│ │ │ ├── entity/ # 数据库实体类 13│ │ │ ├── dto/ # 数据传输对象 14│ │ │ ├── common/ # 公共类 15│ │ │ │ └── Result.java # 统一响应格式 16│ │ │ └── config/ # 配置类 17│ │ └── resources/ 18│ │ ├── application.yml # 主配置文件 19│ │ └── mapper/ # MyBatis XML 映射 20│ └── test/ 21│ └── java/com/example/ocp/ # 测试代码 22
第二步:创建 CLAUDE.md
1> /init 2
Claude Code 自动扫描项目后生成的 CLAUDE.md 会包含所有项目信息。你可以在此基础上补充一些额外的规范:
1## OCP 项目开发规范补充 2 3### API 设计规范 4- 所有 API 路径以 /api 开头 5- 使用 RESTful 风格: 6 - GET /api/users —— 查询用户列表 7 - GET /api/users/{id} —— 查询单个用户 8 - POST /api/users —— 创建用户 9 - PUT /api/users/{id} —— 更新用户 10 - DELETE /api/users/{id} —— 删除用户 11 12### 数据库规范 13- 表名使用小写字母和下划线,如 user_order 14- 字段名使用小写字母和下划线,如 create_time 15- 每张表必须有 id(主键)、create_time、update_time 字段 16 17### 测试规范 18- Service 层必须写单元测试 19- Controller 层写集成测试 20- 测试覆盖率目标:Service 层 ≥ 80% 21
10.3 分模块实现 OCP 项目
OCP 项目可以拆分为以下几个模块,逐一实现。每个模块你只需要用自然语言描述需求:
模块一:用户管理
1> 帮我实现用户管理模块,包括以下功能: 2 1. 用户注册(账号 + 密码 + 邮箱) 3 2. 用户登录(返回 JWT Token) 4 3. 根据 ID 查询用户信息 5 4. 更新用户信息(昵称、头像等) 6 5. 密码加密存储(使用 BCrypt) 7 6. 注册时校验邮箱格式和密码强度 8 9 请在 Controller、Service、Mapper 层分别实现。 10 所有方法都必须有详细的中文注释。 11 为 Service 层编写单元测试。 12
模块二:商品管理
1> 帮我实现商品管理模块: 2 1. 商品实体包含:商品名、描述、价格、库存、分类、图片URL 3 2. 支持商品列表的分页查询(可按分类筛选、按价格排序) 4 3. 支持商品详情查询 5 4. 支持商品搜索(根据名称模糊搜索) 6 5. 管理员可以新增、修改、下架商品 7 8 同样实现 Controller、Service、Mapper 三层。 9 包含详细注释和单元测试。 10
模块三:购物车
1> 帮我实现购物车模块: 2 1. 用户可以把商品加入购物车(指定数量) 3 2. 用户可以修改购物车中商品的数量 4 3. 用户可以从购物车中删除商品 5 4. 用户可以查看自己的购物车列表 6 5. 购物车数据存储在 Redis 中 7 6. 同一个商品重复添加时,数量累加 8 9 需要配置 Redis 连接,实现 Redis 操作的工具类。 10
模块四:订单管理
1> 帮我实现订单模块: 2 1. 用户可以从购物车生成订单 3 2. 订单包含:订单号、用户ID、商品列表、总金额、状态 4 3. 订单状态流转:待支付 → 已支付 → 已发货 → 已完成 → 已取消 5 4. 用户可以查看自己的订单列表 6 5. 用户可以取消待支付的订单 7 6. 生成订单时自动扣减库存(使用数据库事务确保数据一致性) 8 7. 使用 @Transactional 注解管理事务 9
模块五:统一异常处理
1> 帮我实现全局异常处理: 2 1. 创建自定义业务异常类 BusinessException 3 2. 使用 @ControllerAdvice 实现全局异常拦截 4 3. 不同的异常类型返回对应的 HTTP 状态码和错误信息 5 4. 常见异常的处理: 6 - 参数校验失败 → 400 7 - 资源不存在 → 404 8 - 业务逻辑错误 → 422 9 - 服务器内部错误 → 500 10
10.4 调试与测试
开发过程中不可避免会遇到 Bug。下面是处理 Bug 的标准流程:
1Bug 处理流程图 2═══════════════════════════════════════════════════════════ 3 4 发现 Bug(启动报错 / 功能不正常 / 测试失败) 5 │ 6 ▼ 7┌──────────────────┐ 8│ 把错误信息完整地 │ ← 复制粘贴,不要遗漏任何信息 9│ 复制给 Claude Code │ 10└──────┬───────────┘ 11 │ 12 ▼ 13┌──────────────────┐ 14│ Claude Code 分析 │ 15│ 错误原因 │ 16└──────┬───────────┘ 17 │ 18 ▼ 19┌──────────────────┐ 20│ Claude Code 提出 │ 21│ 修复方案 │ 22└──────┬───────────┘ 23 │ 24 ▼ 25┌──────────────────┐ 26│ 你确认 → 修复 │ 27└──────┬───────────┘ 28 │ 29 ▼ 30┌──────────────────┐ 31│ Claude Code 运行 │ 32│ 测试验证修复 │ 33└──────┬───────────┘ 34 │ 35 ▼ 36 测试通过? 37 │ │ 38 是 否 → 返回分析步骤,重新调试 39 │ 40 ▼ 41 Bug 已修复! 42
10.5 部署项目
当你完成了所有模块的开发和测试后,最后一步是部署:
1> 帮我部署这个 OCP 项目。我的服务器环境是: 2 - 操作系统:Linux (Ubuntu 20.04) 3 - 已安装 Docker 和 Docker Compose 4 - 数据库:MySQL 8.0 5 - 需要配置 Nginx 反向代理 6 7 请帮我: 8 1. 创建 Dockerfile(把项目打包成 Docker 镜像) 9 2. 创建 docker-compose.yml(编排 MySQL + Redis + 应用) 10 3. 创建 Nginx 配置文件 11 4. 生成部署脚本 deploy.sh 12 5. 写出详细的部署步骤文档 DEPLOY.md 13
Claude Code 会生成所有需要的文件,包括:
1# Dockerfile —— 把 Java 应用打包成容器镜像 2# 使用官方的 OpenJDK 11 镜像作为基础 3FROM openjdk:11-jre-slim 4 5# 设置容器内的工作目录 6WORKDIR /app 7 8# 把编译好的 jar 包复制到容器中 9COPY target/ocp-platform-1.0.0.jar app.jar 10 11# 暴露 8080 端口(Spring Boot 默认端口) 12EXPOSE 8080 13 14# 容器启动时执行的命令 15ENTRYPOINT ["java", "-jar", "app.jar"] 16
10.6 OCP 项目完整对话流程总结
1OCP 项目从零到部署的完整对话流程 2═══════════════════════════════════════════════════════════ 3 4 第 1 步:创建项目骨架 5 "帮我创建一个标准的 Spring Boot 项目骨架……" 6 │ 7 ▼ 8 第 2 步:初始化 CLAUDE.md 9 /init(让 Claude Code 理解你的项目) 10 │ 11 ▼ 12 第 3 步:逐个实现功能模块 13 ┌─────────────────────────────────────┐ 14 │ 用户模块 → 商品模块 → 购物车模块 │ 15 │ → 订单模块 → 异常处理 → 日志配置 │ 16 └─────────────────────────────────────┘ 17 每完成一个模块,运行测试验证 18 │ 19 ▼ 20 第 4 步:集成测试 21 "帮我写一个端到端的集成测试……" 22 │ 23 ▼ 24 第 5 步:部署上线 25 "帮我创建 Dockerfile 和部署脚本……" 26 │ 27 ▼ 28 ✅ 项目完成! 29
11. 常见问题与排错指南
11.1 安装问题
| 问题 | 原因 | 解决方法 |
|---|---|---|
| npm: command not found | 没有安装 Node.js | 去 nodejs.org 下载安装 |
| claude: command not found | Claude Code 没有安装成功 | 重新执行 npm install -g @anthropic-ai/claude-code |
| 安装过程报网络错误 | 网络问题 | 使用国内镜像:npm install --registry=https://registry.npmmirror.com |
| permission denied | 权限不足 | Mac/Linux 加 sudo:sudo npm install -g ... |
11.2 使用问题
| 问题 | 原因 | 解决方法 |
|---|---|---|
| AI 回复说没有权限读文件 | 文件在工作区之外 | 用 /add-dir 添加目录 |
| AI 好像"忘记"之前说过的内容 | 上下文太长了 | 使用 /compact 压缩上下文 |
| 代码修改后跟预期不一样 | 需求描述不够具体 | 重新描述要求,给出更具体的示例 |
| 执行命令时报错 | 环境配置问题 | 把完整错误信息发给 Claude Code |
11.3 Token 和费用问题
| 问题 | 解决方法 |
|---|---|
| 费用太高 | 切换到 Sonnet 模型:/model sonnet |
| Token 消耗太快 | 使用 /compact 定期压缩上下文 |
| 想控制预算 | 每次大任务前用 /cost 查看当前花费 |
11.4 新手最容易犯的 5 个错误
- ❌ 需求描述太模糊
- 错误:“帮我做一个网站”
- 正确:“帮我做一个电商网站的商品列表页,要展示商品图片、名称、价格,支持按分类筛选”
- ❌ 不提供错误信息
- 错误:“程序跑不起来了”
- 正确:“运行时报这个错误:[粘贴完整错误信息],我的项目是 Spring Boot 2.7,Java 11”
- ❌ 一次提太多需求
- 错误:一口气说出 10 个功能需求
- 正确:一次说 1-2 个功能,完成后再提下一个
- ❌ 不给上下文
- 错误:在一个新项目中直接说"修改 UserService"
- 正确:先说"帮我看看这个项目",等 AI 理解了再提具体修改
- ❌ 不让 AI 运行测试
- 错误:改完代码就认为完成了
- 正确:每次修改后说"改完后帮我运行一下相关测试"
12. 总结与下一步
12.1 你学到了什么
恭喜你完成了 Claude Code 入门教程!让我们回顾一下你学到了什么:
1学习成果检查清单 2═══════════════════════════════════════════════════════════ 3 4 □ 理解 Claude Code 是什么,能做什么 5 □ 独立完成 Claude Code 的安装和配置 6 □ 掌握基础的对话和指令技巧 7 □ 理解上下文(Context)、Token、工具(Tools)等核心概念 8 □ 能够用自然语言让 AI 读取、搜索、修改代码文件 9 □ 理解 CLAUDE.md 文件的作用 10 □ 能够管理一个完整的多文件项目 11 □ 了解 MCP、Skills、Hooks 等高级功能 12 □ 能够从零开始完成一个 OCP 项目的开发 13 □ 知道遇到问题该如何排查 14
12.2 Claude Code 的工作哲学
在使用 Claude Code 的过程中,请记住这 5 条"黄金法则":
1Claude Code 五条黄金法则 2════════════════════════════════════════════════════════════ 3 4 1️⃣ 你是导演,AI 是演员 5 你负责告诉 AI "要演什么",AI 负责具体的"表演" 6 你不需要知道怎么写代码,但需要清楚地描述你想要的结果 7 8 2️⃣ 越具体,结果越好 9 "帮我写个用户登录功能" 不如 10 "帮我写一个用户登录接口,接收用户名和密码, 11 验证成功后返回 JWT Token,失败返回错误信息" 12 13 3️⃣ 迭代比一次完美更重要 14 先让 AI 做出一个能用的版本,然后再逐步优化 15 不要试图第一次就把所有细节都说清楚 16 17 4️⃣ 善用 AI 的眼睛 18 让 AI 帮你读代码、搜代码、分析代码 19 你只需要做决策 20 21 5️⃣ 保持"人在回路中" 22 AI 是强大的工具,但最终的决定权在你手里 23 审查 AI 的修改,理解 AI 的逻辑,做出自己的判断 24
12.3 推荐的学习路径
1进阶学习路径 2═══════════════════════════════════════════════════════════ 3 4 初学者 ──→ 本教程 ──→ 用 Claude Code 做一个小项目 5 │ 6 ▼ 7 阅读 Claude Code 官方文档 8 了解更高级的配置选项 9 │ 10 ▼ 11 学习 MCP 协议 12 连接 GitHub、数据库等外部服务 13 │ 14 ▼ 15 编写自定义 Skills 16 让 Claude Code 更适配你的工作流 17 │ 18 ▼ 19 配置 Hooks 20 实现自动化工作流 21 │ 22 ▼ 23 掌握 Workflow 24 实现多 AI 并行处理复杂任务 25
12.4 最后的寄语
技术世界变化很快,但有一条不变:工具是为人类服务的。
Claude Code 不是为了取代你,而是为了放大你的能力。它就像一个不知疲倦的伙伴,帮你在编程的海洋中航行。
记住:
- 不要害怕犯错 —— 有 Claude Code 在身边,错误都是学习机会
- 保持好奇心 —— 多问"为什么",让 AI 给你解释
- 享受创造的乐趣 —— 编程的本质是用代码创造价值
“你不是在学编程,你是在学习如何指挥一个超级智能的编程团队。”
—— 一位 Claude Code 用户的感悟
本教程版本:v1.0 | 最后更新:2026 年 6 月
适用 Claude Code 版本:v2.0+
《Claude Codde 入门教程—— 从零到独立完成项目》 是转载文章,点击查看原文。