课程0基础Agent开发课 / Claude-Code实战教程 / 第一次使用
— 16 min read

第一次使用

> **时效说明**:本文内容以 2026 年 3 月为基准。

Claude Code:第一次使用

时效说明:本文内容以 2026 年 3 月为基准。

4.1 启动前的准备

在第一次用 Claude Code 之前,做一点准备工作能让体验更好。

4.1.1 确认项目目录

Claude Code 需要在你的项目根目录里启动。所谓"项目根目录",就是包含 pom.xml(Maven 项目)或 build.gradle(Gradle 项目)的那个目录,也是 .git 文件夹所在的地方。

不要在错误的目录启动。如果你在 ~/workspace 启动,Claude Code 会扫描整个 workspace 下的所有内容,上下文会非常混乱。应该 cd 到具体的项目目录:

bash
# 确认你在正确的位置
pwd
# 看看是不是你想要的项目根目录

# 确认这是个 Maven 项目
ls pom.xml
# 确认有 git 管理(强烈推荐)
ls .git

4.1.2 检查 .gitignore

如果你的项目还没有 .gitignore,现在加一个。有 .gitignore 的好处是:Claude Code 在扫描项目文件时会忽略这些文件,不会把编译输出、依赖包、日志文件这些无关内容塞进上下文里,让它的注意力集中在真正重要的源代码上。

一个典型的 Java 项目 .gitignore

code
# Maven 编译输出
target/

# IDEA 项目文件
.idea/
*.iml
*.ipr
*.iws

# Eclipse 项目文件
.classpath
.project
.settings/

# 日志文件
*.log
logs/

# 本地配置(通常包含密码等敏感信息)
application-local.yml
application-local.properties

# 操作系统文件
.DS_Store
Thumbs.db

4.1.3 初始化 git(如果还没有)

强烈建议在 git 仓库里使用 Claude Code。如果你的项目还没有 git:

bash
cd /path/to/your/project
git init
git add .
git commit -m "初始化项目,开始使用 Claude Code"

有了 git,Claude Code 的任何改动都能追踪,改坏了一秒恢复:

bash
# 查看 Claude Code 改了什么
git diff

# 如果不满意,撤销所有改动
git checkout .

# 如果想保留一部分,用交互式恢复
git checkout -p

4.2 在项目目录里启动

准备好之后,进入你的项目根目录,运行 claude

bash
# 进入你的项目根目录
cd /path/to/your/spring-boot-project

# 启动 Claude Code
claude

Claude Code 会自动扫描当前目录的文件结构,建立初始上下文。第一次在某个项目里启动,它会问你是否信任这个目录(跟 IDE 第一次打开项目差不多),输入 yes 确认就行。

启动成功后你会看到交互提示符:

code
╭─────────────────────────────────────────╮
│ ✻ Welcome to Claude Code!               │
╰─────────────────────────────────────────╯

✔ Logged in as: your@email.com

> _

4.3 第一个任务:让它解释代码

最简单的入门任务是让它解释代码,不涉及文件修改,没有任何风险。这也是建立信任感的第一步——先看看它理解代码到什么程度,再考虑让它改代码。

4.3.1 解释一个具体方法

假设你项目里有个复杂的查询方法,你不确定它的逻辑,直接用中文问:

code
解释一下 UserService 里的 findActiveUsersWithOrders 方法是干什么的

Claude Code 会自动找到这个文件,读取相关代码,然后用人话解释。不需要你告诉它文件在哪里,不需要你粘贴代码。

4.3.2 如何问才能得到好答案

问法不同,得到的答案质量差很多。几个建议:

带上具体场景,不要只问"这是什么":

code
# 效果一般
解释 OrderService

# 效果好
我在排查一个订单状态不更新的 bug,帮我解释一下 OrderService 里的 updateOrderStatus 方法,
重点看一下它什么情况下会抛异常,以及它调用了哪些下游服务

告诉它你的背景,避免它解释你已经知道的东西:

code
我是 Java 后端开发,对 Spring Boot 比较熟,但不了解这个项目的业务逻辑。
请解释一下这个项目的用户权限体系是怎么设计的,用了什么技术方案(Spring Security/Shiro/自定义)

让它聚焦在你困惑的地方:

code
UserService 里的 processUserRegistration 方法我大部分看懂了,
但是第 47 行到第 65 行这段逻辑有点没看懂,涉及到一个双重检查锁,
帮我解释一下为什么要这样写,以及它解决的是什么并发问题

4.3.3 分析整个项目的技巧

刚接手一个陌生项目时,先让 Claude Code 帮你建立全局理解,再深入细节。

第一步:问项目架构

code
这个项目的整体架构是什么?主要有哪些模块,它们之间是怎么交互的?

它会扫描项目结构,分析各个包和类的关系,给你一个概览。

第二步:问技术栈和依赖

code
这个项目用了哪些主要的外部依赖?数据库用的什么,缓存用的什么,
消息队列用的什么?有没有用到什么不常见的库?

第三步:问核心业务流程

code
这个项目最核心的业务流程是什么?从用户发起一个[核心操作]开始,
到最终完成,数据经过了哪些处理步骤?

第四步:再问具体细节

建立了全局理解之后,再深入你关心的具体部分。这样你能更好地判断 Claude Code 的解释是否准确,也能提出更有针对性的问题。

4.4 让 Claude Code 修改代码的完整流程

当你让 Claude Code 修改代码时,它不会立刻动文件,而是先给你看它打算怎么改,然后等你确认。

4.4.1 发起一个修改任务

比如你说:

code
给 UserController 的所有接口方法加上参数校验,用 @Valid 注解,
然后在全局异常处理器里处理 MethodArgumentNotValidException,
返回统一格式的错误响应

Claude Code 会先分析代码,然后展示一个类似 git diff 的界面:

code
● Edit UserController.java
  ┌─ Before ──────────────────────────────────────────
  │  @PostMapping("/register")
  │  public ResponseEntity<User> register(@RequestBody UserDTO dto) {
  │      return ResponseEntity.ok(userService.register(dto));
  │  }
  └───────────────────────────────────────────────────
  ┌─ After ───────────────────────────────────────────
  │  @PostMapping("/register")
  │  public ResponseEntity<?> register(@Valid @RequestBody UserDTO dto) {
  │      return ResponseEntity.ok(userService.register(dto));
  │  }
  └───────────────────────────────────────────────────

  Apply this change? [y/n/a/e/d]

4.4.2 理解每个确认选项

这个确认界面的每个选项含义不同:

选项 含义 什么时候用
y 确认这一处改动,继续看下一处 这处改动没问题,逐个确认
n 跳过这一处改动,继续看下一处 这处你不想改,但其他的可能没问题
a 全部确认,不再逐个询问 你已经浏览过所有改动,全部认可
e 在编辑器里打开这个文件,手动修改 你想在 Claude 的基础上做调整
d 显示完整的 diff 想看改动的更多上下文

关于 a(全部确认)的使用建议: 不要在没有看过所有改动的情况下用 a。正确的做法是先快速浏览所有的 diff(用 d 查看详情),确认没有意外的改动,再用 a 一次性确认。

关于 n(跳过)的用法: 如果某处改动你不认可,用 n 跳过,但这不会让 Claude Code 知道你为什么跳过。跳过之后,你可以继续对话,告诉它为什么你不接受这处改动,让它重新考虑。

4.4.3 任务完成后的检查

Claude Code 完成改动之后,不要直接就结束了。做一下这些检查:

检查一:看 git diff

bash
# 退出 Claude Code(Ctrl+D 或者输入 /exit),然后
git diff

仔细看每一处改动,确认没有你不知道的修改。

检查二:编译验证

bash
mvn compile -q
# 如果没有报错说明语法和编译没问题

检查三:运行测试

bash
mvn test
# 如果有现成的测试,跑一下,确认没有回归问题

检查四:启动应用验证

对于涉及运行时行为的改动(比如加了 Spring Bean 配置、改了自动装配),最好启动一下应用确认没有问题:

bash
mvn spring-boot:run

4.5 如何终止正在进行的任务

有时候你发现 Claude Code 在做的事情不对,需要中途停止。

方法:按 Ctrl+C

这会立刻停止当前任务。如果 Claude Code 正在逐个展示 diff,Ctrl+C 会停止后续的 diff 展示。如果它正在执行 shell 命令,Ctrl+C 会终止那个命令。

注意: Ctrl+C 只停止当前任务,不会撤销已经写入的文件。如果它已经修改了几个文件,这些文件改动不会自动还原。需要你手动 git checkout . 或者 git checkout 具体文件名 来还原。

中途停止之后的处理:

bash
# 查看 Claude Code 已经改了什么
git diff

# 如果想全部撤销
git checkout .

# 如果想保留一部分改动,用交互式 checkout
git checkout -p

4.6 一次完整的 Spring Boot 实战示例

下面用一个具体的场景,走一遍从分析到改动再到验证的完整流程。

场景:给一个 Spring Boot 项目加接口限流功能

假设你有一个 Spring Boot 项目,要给它加接口限流功能。以前你需要搜文档、找示例、手动写配置类。现在这样做:

第一步:分析现有代码(只读,无风险)

bash
cd ~/workspace/my-spring-boot-project
claude

先让它了解项目现状:

code
帮我了解一下这个项目的现状:
1. 目前用了哪些 Spring Boot 版本和主要依赖?
2. 有没有已经引入的限流或者熔断相关的依赖?
3. Controller 层有哪些接口?

它会读取 pom.xml 和 Controller 文件,给你一个准确的现状描述。

第二步:设计方案

根据它给出的现状,告诉它你的要求:

code
好的,基于你了解的项目情况,帮我规划一下接口限流的实现方案:
要求:
1. 用 Resilience4j 实现
2. 限流规则:每秒最多 10 个请求
3. 超出限制返回 429 状态码和友好的提示信息
4. 给 UserController 和 OrderController 都加上

先给我说说你打算怎么做,不要直接改代码

它会告诉你计划:

code
● 我会执行以下步骤:
  1. 在 pom.xml 添加 resilience4j-spring-boot3 依赖
  2. 在 application.yml 添加限流配置
  3. 创建 RateLimiterConfig.java 配置类(如果需要自定义配置)
  4. 给 UserController 和 OrderController 加上 @RateLimiter 注解
  5. 在全局异常处理器 GlobalExceptionHandler 里处理 RequestNotPermitted 异常

  您确认要按照这个步骤进行吗?

这一步很重要:在让它动代码之前,先对齐方案。如果它的计划里有你不认可的地方,现在纠正,比改完之后再回滚省事得多。

第三步:执行改动

确认方案没问题之后:

code
可以,按照这个计划执行

它会开始一步一步展示每个文件的改动。认真看每一处 diff:

  • pom.xml 的改动:确认依赖版本和 groupId 是否正确
  • application.yml 的改动:确认配置项名称和值是否合理
  • Controller 的改动:确认 @RateLimiter 注解的参数是否正确
  • 异常处理的改动:确认返回格式是否符合你的项目规范

第四步:验证

bash
# 退出 Claude Code
# Ctrl+D 或输入 /exit

# 编译验证
mvn compile

# 跑测试
mvn test

# 如果没有问题,启动应用测试
mvn spring-boot:run

如果编译或者测试有错误,重新进入 Claude Code,把错误信息粘贴给它:

code
编译出现了错误:
[把错误信息粘贴在这里]
帮我修复

这个流程的完整时间对比:

  • 手动实现:查文档 15 分钟 + 写代码 30 分钟 + 调试 30 分钟 = 约 75 分钟
  • 用 Claude Code:分析 + 执行 + 验证 = 约 10-15 分钟

时间节省来自两方面:一是它查文档和写代码比你快,二是它生成的代码基本上第一次就能跑通,调试时间大幅减少。

4.7 JetBrains IDEA 集成(Java 开发者重点)

Java 后端开发者最常用的 IDE 是 IntelliJ IDEA。Claude Code 和 IDEA 有几种配合方式。

4.7.1 用 IDEA 的内置终端

这是最简单的方式,不需要任何额外配置:

  1. 在 IDEA 里打开你的项目
  2. Alt+F12(Windows/Linux)或 Option+F12(macOS)打开内置终端
  3. IDEA 的内置终端会自动在项目根目录启动
  4. 直接输入 claude 启动

这样你可以同时看到 IDEA 里的代码和 Claude Code 的终端,Claude Code 改动文件后,IDEA 会自动检测到文件变化并刷新(通常会弹一个提示问你是否重新加载)。

推荐布局: IDEA 左侧是项目文件树,中间是代码编辑器,底部是终端(运行 Claude Code)。这样可以边看 diff 边看代码,确认改动时更有把握。

4.7.2 安装 Claude Code 插件

JetBrains 插件市场里有 Claude Code 的插件,安装后可以直接在 IDEA 里使用 Claude Code,不需要切换到终端。

安装方式:

  1. 打开 IDEA → Settings(Ctrl+Alt+S
  2. 进入 "Plugins"
  3. 在 Marketplace 里搜索 "Claude Code"
  4. 安装官方的 Anthropic 插件,重启 IDEA

安装后,IDEA 侧边栏会多一个 Claude Code 的面板,点击打开。在这个面板里输入任务,文件改动会直接显示在编辑器里,体验更流畅。

提示: 如果你在 IDEA 里配置了 Claude Code 插件,环境变量配置(API Key 等)需要保证 IDEA 启动时能读到。最可靠的方式是用 ~/.claude/settings.json 配置,而不是 shell 的 export,因为 IDEA 不一定继承你的 shell 环境变量。

4.7.3 IDEA 和终端 Claude Code 配合的最佳实践

让 Claude Code 做,让 IDEA 看:

  • Claude Code 在终端里执行改动
  • IDEA 负责代码审查、智能提示、重构确认
  • 改动完成后,在 IDEA 里用 "Local History" 或 git 面板审查改动

遇到编译错误的快速流程:

  1. Claude Code 做了改动
  2. IDEA 检测到文件变化,编译时出现错误(红色波浪线)
  3. 在 IDEA 里看到错误的具体信息
  4. 把错误信息复制到 Claude Code 的终端,让它修复

使用 IDEA 的 Git 工具审查改动:

Claude Code 改完之后,在 IDEA 里打开 "Git" 面板(Alt+9),可以看到所有改动的 diff,比终端里看 git diff 更直观,特别是涉及多个文件的改动。

4.8 常见问题解答

Q:Claude Code 扫描我的项目之后,会把代码发到服务器吗?

A:是的,Claude Code 会把你的代码作为上下文发送给 API 服务(Anthropic 或者你配置的第三方服务)。如果你的项目有保密要求,在使用前确认你们公司的数据安全政策,或者只在自己的私人项目上使用。

Q:Claude Code 改动文件之前我能设置备份吗?

A:最好的"备份"就是 git commit。在让它做大改动之前,先提交当前状态:

bash
git add .
git commit -m "before claude-code refactoring"

这样即使改得不好,git reset --hard HEAD 就能完全恢复。

Q:Claude Code 卡住了,一直没有响应,怎么办?

A:先等 30 秒,有时候是 API 响应慢。如果还是没反应,按 Ctrl+C 中断。然后检查网络连接,确认 API 服务正常。如果用的是 DeepSeek,可以去 platform.deepseek.com 看看服务状态。

Q:我的问题太大,Claude Code 直接开始改代码了,我想先讨论方案怎么办?

A:在任务描述里加一句"先给我规划方案,不要直接修改代码"。或者按 Ctrl+C 停止,然后重新描述,强调"先讨论方案"。

Q:Claude Code 改了很多文件,我怎么知道改对了没有?

A:做好这几步:

  1. git diff 逐文件看改动
  2. mvn compile 确认编译通过
  3. mvn test 确认测试通过
  4. 如果有集成测试,跑一下集成测试
  5. 如果改动涉及运行时行为,本地启动应用手动测试一下

Q:Claude Code 生成的代码跟我的编码规范不一样(比如命名风格、缩进),怎么统一?

A:最好的方式是创建 .claude/CLAUDE.md 文件,在里面写明你的编码规范。比如:

markdown
# 项目编码规范

## 命名规范
- 类名:大驼峰(PascalCase)
- 方法名和变量名:小驼峰(camelCase)
- 常量:全大写下划线分隔(UPPER_SNAKE_CASE)

## 代码风格
- 缩进:4个空格
- 每行最大长度:120字符
- 花括号:K&R 风格

## 注释规范
- 所有 public 方法必须有 Javadoc
- 复杂逻辑要有行内注释

Claude Code 每次启动都会读取这个文件,然后按照你的规范生成代码。这个文件的更多用法在后面专门的章节里讲。


好了,这就是 Claude Code 的基本用法全貌。下一章开始介绍更高级的功能:用 CLAUDE.md 给项目设置 AI 行为规范,以及用 Hooks 实现自动化工作流。

本页目录