Claude Code(简称 cc)是 Anthropic 推出的命令行 AI 编程助手,直接在终端中运行,能阅读整个项目、编辑文件、执行命令,是日常开发的强力搭档。

本文记录了我从零开始使用 Claude Code 的经验,涵盖工作模式、实战 demo、skill 安装、上下文管理、回滚恢复、子代理等技巧,希望能帮你少走弯路。

声明:本文是本人学习小林coding的教程之后,自己动手实操后写的文章,文章结构类似
详细教学链接:面试官怒斥:“没用过 Claude Code 也敢来?” 我不屑:“我是老艺术家,坚持手搓代码”,他破防了


一、三个工作模式

按住 Shift + Tab 可以在三种模式之间切换:

  • 默认模式:每一步操作都要询问你是否允许,适合初学者或敏感操作。

    默认模式

  • Auto-accept 模式:自动执行所有操作,不需要逐个确认,适合已经熟悉 Claude 并且信任它的场景。

    Auto-accept模式

  • Plan 模式:只看不改,让 Claude 帮你分析规划,省 token——做架构设计、方案调研时非常好用。

    Plan模式

实战中用得最多的组合:先用 Plan 模式聊清楚需求,再切到默认模式或 Auto-accept 模式执行。


二、实战 Demo:从零构建贪吃蛇游戏

2.1 先规划,再动手

很多人一上来就让 AI 写代码,结果是反复返工。更好的做法是让 AI 来问你——本质上是让 Claude 帮你做需求分析。

不懂也没关系,把你的想法告诉 Claude,它会反问你具体需求:

需求分析

如果某个选择后悔了,可以通过键盘的 回退重新选择:

回退选择

选好之后提交:

提交方案

这种「让 AI 来问你」的技巧,在需求不明确的时候特别好用。Claude 帮你梳理需求,而不是一上来就埋头写代码。

2.2 完整方案 + 执行

以下是 Claude 给出的完整方案:

完整方案

确认无误后,切换到 Auto-accept 模式,等待完成:

自动执行

⚠️ 注意:这里用 Auto-accept 只是为了演示效率。第一次使用建议还是用默认模式,等熟悉了 Claude 的风格、建立了信任感之后再使用 Auto-accept。

等后续熟悉了流程,就可以在第一次提问时就把需求说清楚:

  • 明确技术栈:用什么架构、什么语言
  • 明确功能:要实现什么功能、面向什么用户、项目的目的是什么
  • 明确交付要求:交付哪些内容、先做什么后做什么

2.3 交付成果

花了约十分钟,Claude 交付了一个完整的贪吃蛇游戏:

贪吃蛇游戏已经做好了!🎉

  ---
  🐍 Snake Game — 项目总览

  项目结构

  snake/
  ├── cmd/wasm/main.go           # WASM 入口,JS↔Go 桥接
  ├── internal/
  │   ├── game/
  │   │   ├── types.go           # 方向/坐标/食物类型/常量
  │   │   ├── snake.go           # 蛇实体(移动/增长/碰撞)
  │   │   ├── food.go            # 食物系统(普通/金色/减速/毒)
  │   │   ├── obstacle.go        # 障碍物生成 & 碰撞
  │   │   └── game.go            # 游戏引擎:状态机 + Tick 循环
  │   └── render/
  │       └── canvas.go          # Canvas 2D 渲染器
  ├── web/
  │   ├── index.html             # 前端页面 + JS glue 代码
  │   ├── style.css              # 暗色主题样式
  │   ├── wasm_exec.js           # Go WASM 运行时胶水
  │   └── main.wasm              # 编译产物
  ├── Makefile
  └── go.mod

  已实现功能

  ┌─────────────┬────────────────────────────────────┐
  │    功能     │                说明                │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 基础玩法 │ 方向键/WASD 控制,吃食物变长,得分 │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 碰撞死亡 │ 撞墙、撞自己、撞障碍物             │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 难度递增 │ 每吃 5 个食物升一级,速度加快      │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 金色食物 │ +3 长度,+30 分,5 秒后消失        │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 减速食物 │ 5 秒内蛇速减半(青色)             │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 毒食物   │ -1 长度,长度 ≤1 即死(紫色)      │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 游戏结束 │ 暗化画布 + HTML 浮层,显示最终得分 │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 重新开始 │ 空格键 / 点击按钮                  │
  ├─────────────┼────────────────────────────────────┤
  │ ✅ 蛇眼     │ 蛇头根据方向画小眼睛               │
  └─────────────┴────────────────────────────────────┘

  运行方式

  cd snake
  make build    # 编译 WASM
  make serve    # 启动 HTTP 服务 → http://localhost:8080

  然后用浏览器打开 http://localhost:8080,方向键就能玩了!

  架构亮点

  - Go 侧完整掌控:游戏状态、碰撞检测、渲染全部在 Go/WASM 中完成
  - JS 只做薄胶水:键盘事件捕获 + requestAnimationFrame 驱动循环 + DOM HUD 更新
  - 标准 Go 项目结构:internal/game 纯逻辑(可单独测试),internal/render 渲染层,cmd/wasm 入口
  - 时间驱动的 Tick:Go 侧用 time.Now() 控制 tick 间隔,JS 只管 RAF 循环,不丢帧

  ✻ 耗时 9 分 43 秒

2.4 继续迭代:部署到服务器

接着提新需求——部署到服务器,分享给朋友玩:

我的服务器IP是192.144.168.226,不要本地,我要分享给朋友玩,同时给我启动的指令

Claude 修改了配置并给出了结果:

搞定!✅

  ---
  服务已在运行

  ┌──────────┬─────────────────────────────┐
  │   项目   │            详情             │
  ├──────────┼─────────────────────────────┤
  │ 游戏地址 │ http://192.144.168.226:8080 │
  ├──────────┼─────────────────────────────┤
  │ 进程 PID │ 2471535                     │
  ├──────────┼─────────────────────────────┤
  │ 绑定     │ 0.0.0.0:8080(外网可访问)  │
  └──────────┴─────────────────────────────┘

  朋友直接浏览器打开 http://192.144.168.226:8080 就能玩 🎮
  方向键 / WASD 控制,空格键重新开始。

  以后自己启动:

  cd ~/golang/snake
  make serve

  或者手动后台启动:

  cd ~/golang/snake/web && nohup python3 -m http.server 8080 --bind 0.0.0.0 &

  ▎ ⚠️  确保服务器防火墙开放了 8080 端口

最终效果:

最终成果

符合要求:使用服务器 IP 部署,可以分享给朋友玩。


三、Skill:让 AI 拥有设计品味

3.1 什么是 Skill

Skill 是 Claude Code 的能力扩展机制。frontend-design 是 Anthropic 官方的设计 skill,让 Claude 在做前端时有独特的审美判断,避免千篇一律的 AI 模板风格。它托管在 github.com/anthropics/skills

3.2 安装方式

直接通过 claude plugin install 安装会失败,因为默认没有配置 marketplace。加上 anthropics/claude-code 仓库太大,clone 会超时,所以需要手动安装

# 1. 浅克隆 skills 仓库
git clone --depth=1 git@github.com:anthropics/skills.git

# 2. 创建 skill 目录
mkdir -p ~/.claude/skills/frontend-design

# 3. 复制 SKILL.md
cp ./skills/skills/frontend-design/SKILL.md \
   ~/.claude/skills/frontend-design/SKILL.md

# 4. 验证
head -5 ~/.claude/skills/frontend-design/SKILL.md

3.3 使用

在 prompt 中指定需要的 skill,Claude 就会加载对应能力:

指定skill

skill效果


四、使用 @ 精准指定文件

项目文件越来越多,每次都全量扫描不仅慢,还吞噬宝贵的上下文窗口

直接用 @ 引用对应文件,说清楚需求——可以引用单个文件、多个文件、甚至整个目录。@ 指定文件,指哪打哪

@指定文件

上下文窗口是有限的。不指定文件时,Claude 为了理解需求会检索大量文件,甚至扫描整个项目——这些都在消耗你的上下文。


五、遇到复杂问题?用 Think 模式

如果要加一个涉及数据结构设计和多组件调用的功能(比如游戏统计面板),可以开启 Think 模式,让 Claude 花更多时间深度分析:

我现在想要加关卡功能和游戏数据统计功能,请使用 think harder 模式给我方案

此时 Claude 的思考耗时更长,分析也更深入。

四个思考级别:

级别 适用场景
think 简单问题,快速解答
think hard 中等难度,需要一定分析
think harder 架构设计、bug 排查、跨文件修改
ultrathink 非常棘手的问题,需要深度推理

⚠️ 思考越深,消耗的 token 越多。简单问题别滥用,复杂问题再用——按需选择级别,性价比最高。


六、CLAUDE.md:给 Claude 的项目记忆

6.1 是什么

CLAUDE.md 是放在项目根目录的配置文件,Claude Code 每次启动都会自动读取。它就像是 Claude 对这个项目的「记忆」——只要在项目目录中启动 cc,它就知道项目做什么、用什么技术栈、有哪些代码规范。

6.2 创建

使用 /init 命令自动生成:

init命令

生成的内容示例:

CLAUDE.md内容

可以根据需要进一步定制:

生成全局记忆,以后的CLAUDE.md全部中文表达,同时 @../CLAUDE.md 修改为中文

6.3 编写原则

CLAUDE.md 不是越长越好,而是越精准越好——太长会占用过多上下文。

需要包含的关键信息:

  • 项目简介:一句话说清楚做什么的
  • 技术栈:用了什么框架、工具
  • 代码风格:命名规范、注释风格等
  • 项目结构:目录的组织方式

核心原则:宁缺毋滥、极致精简、直击本质。 CLAUDE.md 是一个活文档,项目演进时需要同步更新。


七、Rewind 回滚:后悔药

如果 Claude 的回答或修改出现了偏差,有两种方式回滚:

方式一:Rewind(代码 + 上下文一起回退)

  • 双击 Esc
  • 或输入 /rewind
  Rewind

  Restore the code and/or conversation to the point before…

   ↑ 2 more above

    你现在有项目记忆吗,只回答有或没有
    No code changes

    有什么,简短回答
    No code changes

  ❯ /init
    CLAUDE.md +63

    生成全局记忆,以后的CLAUDE.md全部中文表达,同时 @../CLAUDE.md 修改为中文
    3 files changed +53 -37

    (current)

使用 选择要回滚到的节点即可。代码和对话上下文都会恢复到该状态。

方式二:直接说明(只回退代码)

你刚才的修改逻辑有问题,撤销刚才的修改

这种方式只会回退代码,对话上下文保留。

⚠️ 注意:Rewind 只能回滚 Claude 直接创建或编辑的文件。如果执行了 npm install 之类命令生成的文件,无法撤销。

核心经验:Claude 一旦开始跑偏,立刻回滚,别让它一路错下去。早回滚,少返工。如果是大改动,改之前先 git commit 存一个"存档"。


八、Claude 变「笨」了?管理上下文窗口

输入 /context 查看上下文使用情况:

上下文窗口

当使用率超过 70%,就需要给上下文减负了。两种策略:

策略一:/compact(压缩上下文)

做同一个项目、同一个功能时,上下文中有大量有价值的参考信息,用压缩上下文。它会自动总结对话要点,释放空间的同时保留关键信息:

❯ /compact
  ⎿  Compacted (ctrl+o to see full summary)
  ⎿  Read ../CLAUDE.md (63 lines)
  ⎿  Read ../../.claude/projects/.../claude-md-chinese.md (15 lines)
  ⎿  Read cmd/wasm/main.go (145 lines)
  ⎿  Read internal/render/canvas.go (318 lines)
  ⎿  Read internal/game/obstacle.go (165 lines)
  ⎿  Skills restored (init)

策略二:/clear(清空对话)

彻底清空所有对话历史。适用于:接下来要做的任务和之前完全无关,需要从全新角度开始。

使用 /clear 后,简单告诉 Claude 当前项目状态,它就能快速进入状态。

场景 用哪个
同一功能持续开发,上下文有价值 /compact
切换任务,开始全新方向 /clear

九、关掉终端后?用 Resume 恢复

打开一个全新的终端,使用 claude --resume 查看对话历史,选择需要恢复的会话:

resume恢复


十、子代理:让分身帮你干活

最经典的应用场景是代码审查:开了个「分身」,本体和分身并行执行任务,互不干扰。

10.1 创建步骤

第一步:输入 /agents 创建子代理

创建子代理

第二步:选择作用域,大部分场景选 Project

选择作用域

第三步:选择创建方式,选第一个就好

创建方式

第四步:描述子代理的职责——讲清楚用途、职责、触发场景

描述职责

第五步:配置权限(带 × 就是选中)

配置权限

第六步:选择模型(DeepSeek 的模型性价比很高)

选择模型

第七步:选个喜欢的颜色做区分

选择颜色

第八步:配置子代理记忆,默认就好

配置记忆

配置完成

配置完成1

配置完成2

10.2 使用示例

给子代理下达任务:

下达任务

10.3 更多应用场景

子代理的好处不只是代码审查,任何需要独立视角的场景都可以用:

场景 说明
🔬 代码审查 独立审查代码质量和安全问题
🧪 写测试 创建测试子代理,帮你补齐单元测试
📚 查文档 创建文档子代理,让它读某个库的文档并总结
📦 批量修改 让子代理独立处理一组文件的修改,不和主对话混淆

子代理就是分身,提前创建好,用的时候给它一个独立任务,用全新的视角给你干活


总结

回顾一下 Claude Code 的核心使用技巧:

  1. 三种模式灵活切换:Plan 规划 → 默认确认 → Auto-accept 执行
  2. 先规划再动手:让 Claude 做需求分析,而不是盲写代码
  3. 善用 Skill:扩展 Claude 的能力边界(设计、文档、PDF 等)
  4. @ 指定文件:精准定位,节省上下文
  5. 复杂问题加 Think:按需选择思考深度,性价比最高
  6. 维护好 CLAUDE.md:给 Claude 精准的项目记忆
  7. 控制上下文:70% 是警戒线,/compact 保持专注,/clear 全新开始
  8. 跑偏立刻 Rewind:早回滚,少返工
  9. Resume 恢复会话:断连不丢工作
  10. 子代理并行干活:审查、测试、查文档,多线推进

本文基于 Claude Code 日常使用经验整理,希望对你有帮助。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐