Claude Code 是 Anthropic 推出的命令行 AI 编程助手,2025年已经成为很多后端开发者的主力工具。它不是简单的代码补全,而是能在终端里自主理解项目、编辑文件、运行命令、调试排错的 AI Agent。我用 Claude Code 做了几个微服务重构项目,总结了一套从入门到精通的使用方法。今天把深度教程分享出来。
一、Claude Code 是什么# Claude Code 是运行在终端里的 AI 编程助手,核心特点:
CLI 原生 :在终端里运行,和 Vim/Emacs/tmux 完美配合自主 Agent :能自主规划任务、编辑文件、运行命令、看报错、修复,循环直到完成项目理解 :能读取整个项目结构、理解代码上下文、跨文件引用工具能力 :内置文件编辑、命令执行、搜索、git 操作,还能通过 MCP 扩展Claude 原生 :用 Claude 3.5/3.7 Sonnet/Opus,推理能力强,复杂任务完成度高和 Cursor 的区别:Cursor 是 AI 原生 IDE(GUI),Claude Code 是 CLI 工具。喜欢命令行、用 Vim/Emacs、做后端开发的,Claude Code 更顺手;喜欢 GUI、做前端全栈的,Cursor 体验更好。
二、安装与配置# 1
2
3
4
5
6
7
8
# macOS
brew install claude-code
# 或用 npm
npm install -g @anthropic-ai/claude-code
# 验证安装
claude --version
1
2
3
4
5
# 方式一:用 Anthropic API Key(按量付费)
export ANTHROPIC_API_KEY = sk-ant-xxx
# 方式二:订阅 Claude Pro/Max(含额度)
claude login
建议重度用户订阅 Max 计划($20/月),有额度上限,比按量付费可控。
基础配置# 创建 ~/.claude/settings.json:
1
2
3
4
5
6
7
8
{
"permissions" : {
"allow" : [ "Read" , "Write" , "Edit" , "Bash(git *)" , "Bash(go *)" , "Bash(make *)" ],
"deny" : [ "Bash(rm -rf /)" , "Bash(:(){:|:&};:)" ]
},
"model" : "claude-3-5-sonnet-20241022" ,
"max_uses" : 50
}
permissions.allow:允许执行的操作,常用命令加白名单,不用每次确认permissions.deny:禁止执行的危险操作model:默认模型,Sonnet 性价比高,复杂任务用 Opusmax_uses:单次对话最大工具调用次数,防止死循环三、基础使用# 1
2
3
4
5
6
7
8
9
# 在项目目录下启动
cd my-project
claude
# 启动时直接带任务
claude "给这个服务加一个健康检查接口"
# 用特定模型启动
claude --model opus "重构这个复杂函数"
常用命令# 在 Claude Code 交互界面里:
命令 说明 /help查看帮助 /clear清空对话历史 /compact压缩对话历史(上下文太长时用) /model切换模型 /cost查看当前对话的 token 用量和费用 /exit退出 !命令直接执行 shell 命令(如 !git status) @文件名引用文件,让 Claude 关注这个文件 @符号名引用代码符号(函数、类、变量)
第一个任务# 1
2
# 在 Go 项目里
claude "给 resume-service 加一个健康检查接口 /health,返回服务状态、版本、数据库连接状态"
Claude Code 会:
读取项目结构,找到 resume-service 的代码 理解现有代码风格和框架(Gin/Echo) 编辑 handler 文件,添加 /health 接口 编辑路由文件,注册路由 运行 go build 验证编译通过 运行 go test 跑测试 如果有报错,自动修复,再跑一遍 整个过程不需要你手动操作,Claude 自主完成。你只需要看结果,不满意就说"这里改一下"。
四、高级技巧# 4.1 项目理解# Claude Code 能读取整个项目,但上下文有限,要引导它关注重点:
# " # " # " 先 重 参 让 看 关 点 引 考 一 注 看 用 C 下 特 一 特 @ l 这 定 下 定 / a 个 模 文 i u 项 块 r 件 n d 目 e t e 的 s e 整 u r 先 体 m n 理 结 e a 解 构 - l 项 , s / 目 主 e h 结 要 r a 构 有 v n 哪 i d 些 c l 服 e e 务 r , 的 / 用 架 r 了 构 e 什 , s 么 h u 框 a m 架 n e 和 d . 中 l g 间 e o 件 r " / 的 s 风 e 格 r , v 给 i c j e o / b r - e s p e o r s v i i t c o e r y 加 类 分 似 层 的 是 接 怎 口 么 " 设 计 的 "
4.2 多文件重构# 复杂重构涉及多个文件,要把任务拆清楚:
" 1 2 3 4 5 先 把 . . . . . 看 一 r 接 实 加 任 加 下 e 口 际 一 务 单 现 s 接 处 个 状 测 有 u 收 理 查 态 覆 代 m 请 放 询 存 盖 码 e 求 到 任 在 正 , - 后 后 务 常 然 s 立 台 状 R 和 后 e 即 态 e 异 告 r 返 g 的 d 常 诉 v 回 o 接 i 场 我 i 任 r 口 s 景 你 c 务 o 的 e I u / 里 实 D t r 现 的 i e 方 n s 案 C e u , r m 确 e e 认 a / 后 t t 再 e a 改 R s " e k s / u { m i e d } 接 口 从 同 步 改 成 异 步 :
关键点 :
把需求说清楚,包含具体步骤 涉及外部依赖(Redis)要说明 要求加单测,保证质量 “先看代码再说方案,确认后再改”——防止 Claude 直接改出问题 4.3 调试排错# Claude Code 最强大的场景之一是调试:
# " [ " # " # " 先 这 贴 运 这 看 贴 个 报 或 行 复 个 最 报 服 错 者 杂 接 近 错 务 日 让 m 问 口 的 日 启 志 它 a 题 志 动 ] 自 k P g 报 己 e 9 i 错 跑 9 t 了 t , e 延 l 帮 s 迟 o 我 t 突 g 看 , 然 看 看 从 有 是 看 什 什 有 5 么 么 什 0 变 问 么 m 更 题 测 s , : 试 再 失 升 看 败 到 代 , 码 帮 5 可 我 0 能 修 0 的 复 m 性 " s 能 , 瓶 帮 颈 我 " 排 查 一 下 。
Claude 会自己运行命令、看日志、分析代码、定位问题、修复,然后再跑一遍验证。
4.4 代码审查# " 1 2 3 4 按 审 . . . . 严 查 重 一 有 有 有 错 程 下 没 没 没 误 度 最 有 有 有 处 排 近 安 性 不 理 序 3 全 能 符 是 , 次 问 问 合 否 给 题 题 项 完 出 c ( ( 目 善 具 o S N 规 体 m Q + 范 的 m L 1 的 修 i 注 查 地 改 t 入 询 方 建 、 、 议 的 X 内 " 代 S 存 码 S 泄 变 、 漏 更 权 、 , 限 锁 重 绕 竞 点 过 争 看 ) ) :
4.5 测试生成# " 1 2 3 4 5 先 给 . . . . . 看 一 r 覆 正 用 用 测 下 e 盖 常 试 现 s 所 场 m t 覆 有 u 有 景 o e 盖 代 m 公 和 c s 率 码 e 开 异 k t 达 和 - 方 常 i 到 已 s 法 场 模 f 有 e 景 拟 y 8 的 r 都 0 测 v 要 r 断 % 试 i 覆 e 言 风 c 盖 p 库 以 格 e o 上 , s 再 的 i 开 t 始 s o 写 e r " r y v i 层 c , e 不 要 层 连 加 真 单 实 元 数 测 据 试 库 , 要 求 :
五、自定义 Skills# Claude Code 支持自定义 Skills,把常用的工作流固化下来。
创建 Skill# 在项目根目录创建 .claude/skills/ 目录,每个 Skill 是一个子目录,包含 SKILL.md:
m └ y ─ - ─ p r . └ o c ─ j l ─ e a c u s ├ │ ├ │ └ t d k ─ ─ ─ / e i ─ ─ ─ / l l a └ b └ c └ s p ─ u ─ o ─ / i ─ g ─ d ─ - - e d S f S - S e K i K r K v I x I e I e L / L v L l L L i L o . . e . p m m w m m d d / d e n t /
Skill 示例:API 开发流程# 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# .claude/skills/api-development/SKILL.md
---
name: api-development
description: 开发新 API 接口的标准流程,包含接口定义、参数校验、业务逻辑、错误处理、单测
---
# API 开发标准流程
当用户要求开发新 API 接口时,按以下流程执行:
## 1. 理解需求
- 确认接口的功能、输入、输出
- 确认权限要求(是否需要登录、角色权限)
- 确认是否有类似的现有接口可以参考
## 2. 查看现有代码
- 查看同模块的 handler 代码风格
- 查看路由注册方式
- 查看 service 层和 repository 层的模式
- 查看错误处理和参数校验的方式
## 3. 实现接口
按以下顺序实现:
1. **参数定义**:在 types 包定义请求和响应结构体,加 validate tag
2. **Handler**:参数校验、调用 service、格式化响应
3. **Service**:业务逻辑、事务管理、缓存操作
4. **Repository**:数据库操作
5. **路由注册**:在 router 里注册接口
## 4. 错误处理
- 参数错误返回 400,code=1
- 未登录返回 401,code=2
- 无权限返回 403,code=3
- 资源不存在返回 404,code=4
- 服务器错误返回 500,code=500
## 5. 单测
- Handler 层:用 httptest 测试,mock service
- Service 层:mock repository,覆盖正常和异常场景
- 覆盖率要求 80% 以上
## 6. 验证
- 运行 `go build ./...` 确认编译通过
- 运行 `go test ./...` 确认测试通过
- 运行 `go vet ./...` 确认没有静态检查问题
## 注意事项
- 遵循现有代码风格,不要引入新的依赖
- 敏感操作(删除、修改)要加权限校验
- 数据库操作用事务保证一致性
- 不要硬编码,配置放 config
使用 Skill# 启动 Claude Code 后,它会自动发现 .claude/skills/ 里的 Skills。当你说"开发一个新接口"时,Claude 会自动加载 api-development Skill,按标准流程执行。
也可以显式指定:
" 用 a p i - d e v e l o p m e n t s k i l l 给 j o b - s e r v i c e 加 一 个 批 量 更 新 职 位 状 态 的 接 口 "
六、MCP 集成# Claude Code 支持 MCP,可以连接外部 MCP Server 扩展能力。
配置 MCP# 在 ~/.claude.json 或项目级 .claude/settings.json 里配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"mcpServers" : {
"recruitment" : {
"url" : "https://mcp.example.com/sse" ,
"headers" : {
"X-API-Key" : "your-key"
}
},
"github" : {
"command" : "npx" ,
"args" : [ "-y" , "@modelcontextprotocol/server-github" ],
"env" : {
"GITHUB_TOKEN" : "ghp_xxx"
}
}
}
}
使用 MCP 工具# 配置后,Claude Code 就能使用 MCP Server 提供的工具。比如连接了 GitHub MCP 后:
" 查 看 一 下 我 最 近 的 P R , 找 出 有 r e v i e w 意 见 但 还 没 修 改 的 , 帮 我 逐 个 处 理 "
Claude 会调用 GitHub MCP 工具获取 PR 列表,筛选未处理的,然后逐个修改代码、提交、推送。
七、工作流优化# 7.1 CLAUDE.md 文件# 在项目根目录创建 CLAUDE.md,Claude Code 启动时会自动读取,作为项目级指令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# CLAUDE.md
## 项目概述
这是最佳东方招聘平台的后端微服务,用 Go + Gin + GORM 开发,部署在 K8s 上。
## 技术栈
- 语言:Go 1.22
- Web 框架:Gin
- ORM:GORM
- 数据库:MySQL 8.0
- 缓存:Redis 7
- 消息队列:RabbitMQ
- 服务发现:etcd
- 部署:K8s + ArgoCD
## 代码规范
- 分层架构:handler → service → repository
- 错误处理:用自定义 error,统一返回格式 {code, message, data}
- 参数校验:用 go-playground/validator
- 日志:用 zap,结构化日志
- 测试:用 testify,mock 用 mockery
## 常用命令
- 构建:make build
- 测试:make test
- 运行:make run
- 代码生成:make gen(mock、swagger)
## 注意事项
- 不要直接修改 main 分支,新建分支开发
- 数据库迁移用 golang-migrate,不要手动改表
- 敏感配置不要硬编码,从环境变量读
- 提交前跑 make lint 和 make test
有了 CLAUDE.md,Claude Code 不用每次都问"这个项目用什么框架",直接就能上手。
7.2 任务拆分# 大任务不要一次丢给 Claude,拆成小任务,每步验证:
# " # " 第 第 第 第 第 第 第 先 把 我 一 二 三 四 五 六 七 做 不 这 好 们 步 步 步 步 步 步 步 第 好 个 的 要 : : : : : : : 一 的 服 方 把 先 搭 实 实 实 加 写 步 方 务 式 看 建 现 现 现 单 迁 , 式 从 a 一 数 测 移 给 p 下 G 据 s h 文 我 P p o 模 e a 档 迁 H l P 型 r n 和 移 P y H 项 和 v d 回 方 - P 目 i l 滚 案 重 s 骨 r c e 方 , 写 e 版 架 e e r 案 确 成 r 的 ( p 认 v 代 目 o 层 层 后 G i 码 录 s 和 再 o c 结 结 i 路 开 " e 构 构 t 由 始 和 、 o 第 从 业 依 r 二 务 赖 y 步 P 逻 、 " H 辑 配 层 P , 置 给 、 重 我 启 写 一 动 成 个 脚 迁 本 G 移 ) o 方 , 案 分 几 步 来 :
每步完成后验证,再进行下一步,比一次让它做整个重构靠谱得多。
7.3 人工审核# Claude 生成的代码一定要审核,特别是:
安全相关(SQL、权限、加密) 并发相关(goroutine、锁、channel) 数据库事务 错误处理 性能敏感的代码 不要完全信任 AI,它会"一本正经地胡说八道"。审核重点是逻辑正确性和安全性,语法和风格 Claude 一般没问题。
八、实战案例# 案例:微服务接口开发# 任务:给 resume-service 加一个批量导出接口。
我 C 好 1 2 3 4 5 6 你 我 C ( ( ( 完 - - - - - - 接 c : l 的 . . . . . . 看 : l 运 运 运 成 口 u 用 a , 这 可 a 行 行 行 了 i i i i i i 已 r - - u 我 接 后 查 任 E 加 个 以 u , n n n n n n 经 l H d a d 理 口 台 询 务 x 单 方 , d g g g 新 t t t t t t 可 p e 解 任 状 c 测 案 开 e o o o 增 e e e e e e 以 - " ' i : 需 P g 务 态 e 覆 可 始 : / r r r r r r 用 X C { - ( 求 O o 状 存 l 盖 以 实 ( b t v 修 n n n n n n 了 o " d 读 了 S r 态 在 吗 现 开 u e e 改 a a a a a a , P n k e 取 。 T o 接 生 ? 。 始 i s t 了 l l l l l l 你 O t e v 项 这 u 口 R 成 编 l t , 以 / / / / / / 可 S e y e 目 个 / t e 用 辑 d , 没 下 t h s r r s 以 T n w l 结 接 r i G d 文 , 测 有 文 y a e e o e 用 t o o 构 口 e n E i e 件 编 试 问 件 p n r p u r h - r p , 涉 s e T s x , 译 通 题 : e d v o t v c t T d m 理 及 u , c 加 通 过 ) s l i s e i u t y " e 解 异 m 执 / 任 e 过 ) / e c i r c r p p : n 现 步 e 行 r 务 l t ) e r e t e l : e " t 有 任 / : e 记 i y x / / r / : G 代 务 e 查 s 录 z p p e e r e 测 / o s 码 和 x 询 u 存 e e o x x y u x 试 l a 开 k ) 文 p 数 m 在 s r p p t p 一 o p 发 i 件 o 据 e 库 、 t o e e o 下 c p " l 生 r / M h . r r x r r : a l , l 成 t → e y a g t t p . t l i " , , x S n o . . o g _ h c c 加 我 接 生 p Q d ( g g r o t o a i 一 的 收 成 o L l 请 o o t ( e s t t 个 实 筛 r e 求 ( ( _ 注 s t i y 批 现 选 E t r / h 异 t 册 t : o " 量 方 条 x / 、 响 a 步 a 路 . 8 n : 导 案 件 c { s 应 n 任 s 由 g 0 / " 出 : , e t e 类 d 务 k ) o 8 j 杭 简 立 l a r 型 l 逻 . ( 0 s 州 历 即 s v ) e 辑 g 单 / o " 的 返 → k i r ) o 测 r n } 接 回 _ c ) ( ) e " ' 口 任 上 i e 任 s , 务 传 d 、 务 u \ 支 I } r 持 m 持 D O e 久 e 按 S p 化 / 条 S o ) e 件 s x 筛 → i p 选 t o , 更 o r 导 新 r t 出 任 y 务 、 \ E 状 路 x 态 由 c ) e → l , 发 异 通 步 知 生 成 , 完 成 后 发 通 知 。 整个过程 5 分钟,比自己写快 5-10 倍,而且代码质量稳定。
九、踩坑经验# 上下文太长会"失忆" :对话太长时,Claude 会忘记早期的上下文。用 /compact 压缩,或者开新对话,把关键信息贴进去不要让它直接跑危险命令 :虽然有 deny 列表,但还是要小心。涉及删除、覆盖、发布的命令,让它先确认再执行大文件编辑容易出错 :Claude 编辑大文件(>500行)时有时会漏内容。让它用小范围编辑,或者把大文件拆成小文件依赖版本问题 :Claude 可能会建议用不存在的 API 或过时的库。涉及第三方库时,让它先看 go.mod/package.json 里的版本,再写代码测试不要完全信 :Claude 写的测试有时会"放水"(断言太松、mock 不对)。一定要看测试代码,确认测试真的在验证逻辑git 操作要小心 :让 Claude 操作 git 时,它可能会强制推送、删除分支。涉及 git 操作时,先让它说要执行什么命令,确认后再执行API Key 安全 :不要把 API Key 写在代码里,Claude 可能会不小心提交到 git。用环境变量,CLAUDE.md 里说明费用控制 :重度使用 Claude Code,token 消耗很快。订阅 Max 计划比按量付费划算,用 /cost 随时看用量十、总结# Claude Code 深度使用核心:
CLI 原生,后端开发者利器 :在终端里运行,和 Vim/tmux/git 完美配合,比 GUI 工具更适合后端开发自主 Agent,不是简单补全 :能理解项目、编辑文件、运行命令、看报错、修复,循环直到完成任务CLAUDE.md 是项目说明书 :把项目概述、技术栈、规范、常用命令写进去,Claude 不用每次问,直接上手自定义 Skills 固化工作流 :把常用流程(API 开发、bug 修复、代码审查)做成 Skill,保证一致性和质量MCP 扩展能力边界 :连接 GitHub、数据库、内部系统等 MCP Server,让 Claude 能操作外部世界任务拆分,小步迭代 :大任务拆成小步骤,每步验证,比一次丢给它靠谱人工审核是必须的 :安全、并发、事务、性能相关的代码一定要审核,不要完全信任 AI上下文管理很重要 :对话太长用 /compact,大任务开新对话,防止"失忆"Claude Code 代表了 AI 编程的新范式——不是"AI 帮你写一行代码",而是"AI 作为你的开发伙伴,自主完成完整任务"。用好它,开发效率能提升 2-3 倍,而且能把你从重复劳动中解放出来,专注于架构设计和业务思考。但它是工具不是替代者,你的技术判断力、业务理解、代码审美仍然是核心。