尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记

第三部分:Claude Code 深度使用与进阶技巧

复制代码
学习目标:在掌握安装与基础配置后,深入掌握 Claude Code 的全部用法与进阶技巧,让 AI 真正成为你的高效编程搭档
完成标志:能熟练使用 Claude Code 完成完整开发流程,并掌握高阶配置、最佳实践与进阶能力完成标志:能熟练使用 Claude Code 完成完整开发流程,并掌握高阶配置、最佳实践与进阶能力

好,到这里你已经能把 Claude Code 跑起来了。前面两部分你完成了:

第零部分:准备好了开发环境(Node.js、Git、VS Code 等)

第二部分:了解了 AI 编程工具生态,安装并配置好了 Claude Code,也理解了不同模型的特点与选型策略

但很多人就停在了这一步 ------ 会用,但用得不顺手。用久了你会发现三个问题:

它怎么把文件改坏了? → 你得学会管住它

用着用着怎么变笨了? → 你得学会管理上下文

它对每个人都一样,怎么让它懂我? → 你得学会个性化配置

本部分就是解决这三个问题的。先了解全局框架,再逐个深入。

Claude Code 的能力可以按 7 层扩展(Harness) 来理解。Anthropic 官方在 2026 年 5 月的企业级指南中总结了这个框架:

  1. CLAUDE.md --- 项目说明书,每次会话自动加载

  2. Hooks --- 事件触发器,在特定时机自动执行

  3. Skills --- 专业知识库,AI 按需加载

  4. Plugins --- 把 Skills + Hooks + MCP 打包分发

  5. LSP --- 给 AI 装上 IDE 级的代码导航

  6. MCP --- 连接外部工具和数据源

  7. 子 Agent --- 独立上下文并行干活

前 3 层是基础配置,后 4 层是高级扩展。本部分和第四部分会逐个展开。

官方反复强调一个观点:模型能力是地板,配置质量才是天花板 。花时间把配置做好,比追最新模型版本更有实际收益。


3.1 模型选择与切换

配置好 API 后,你可能会问:"这么多模型,我该用哪个?" 这一节帮你解答。

模型 速度 代码质量 推理能力 成本 推荐场景
Claude Haiku 4.5 极快 良好 中等 $ 较低 简单代码补全、格式化、小修改
Claude Sonnet 4.6 优秀 $$ 适中 日常开发、功能实现(默认推荐)
Claude Opus 4.7 中等 顶级 极强 $$$ 较高 复杂架构设计、疑难 Bug、算法难题

成本估算参考(2026-05-18 核对)

模型 输入费用 输出费用 一次普通编程对话费用
Claude Haiku 4.5 $1 / 百万 Token $5 / 百万 Token 低成本批量处理
Claude Sonnet 4.6 $3 / 百万 Token $15 / 百万 Token 日常开发主力
Claude Opus 4.7 $5 / 百万 Token $25 / 百万 Token 复杂问题少量使用

日常开发使用 Sonnet 就足够了。只在遇到特别复杂的问题时才切换到 Opus。Haiku 适合大批量处理简单的任务。

在 Claude Code 中切换模型(四种方式)

Claude Code 提供了四种模型切换方式,按优先级从高到低排列:

方法一:启动时指定(临时使用)

复制代码
# 使用模型别名(推荐,自动指向最新版本)$ claude --model opus   # 最强推理$ claude --model sonnet # 日常编码(默认)$ claude --model haiku  # 快速轻量# 使用具体模型名时,请以当前服务商官方文档为准$ claude --model opus$ claude --model "deepseek-v4-pro[1m]"

方法二:运行中切换(使用斜杠命令)

在 Claude Code 对话中直接输入:

复制代码
> /model                # 打开模型选择器(交互式)> /model sonnet         # 直接切换到 Sonnet> /model opus           # 直接切换到 Opus

方法三:环境变量持久设置

复制代码
# 设置默认使用的模型(支持别名或具体名称)export ANTHROPIC_MODEL="sonnet"

方法四:配置文件持久设置(推荐)

settings.json 中设置 model 字段,重启即生效:

复制代码
// ~/.claude/settings.json(全局生效){ "model": "sonnet" }
复制代码
// 项目/.claude/settings.json(仅该项目生效){ "model": "opus" }

可以通过cc-switch查看

配置文件层级说明

配置文件位置 作用范围 是否提交 Git 优先级
~/.claude/settings.json 全局(所有项目)
项目 /.claude/settings.json 当前项目(团队共享)
项目 /.claude/settings.local.json 当前项目(个人私有) 否(gitignore)

不同模型的使用建议

场景 推荐模型 理由
日常功能开发 Claude Sonnet 速度和质量的最佳平衡
简单代码修改 / 格式化 Claude Haiku 足够胜任,成本最低
复杂架构设计 Claude Opus 最强推理,值得多花钱
Bug 调试(简单) Claude Sonnet 通常够用
Bug 调试(复杂) Claude Opus 或 DeepSeek V4 Pro 需要深度推理
中文项目文档 Claude Sonnet / 通义千问 中文能力出色
预算紧张 DeepSeek API / GLM / Kimi 按当前价格选择性价比方案
离线 / 隐私敏感 本地 Ollama 模型 完全本地,免费

3.2 核心配置详解

Claude Code 有多层配置体系,从全局到项目级,层层覆盖。

配置层级

  • 全局配置(影响所有项目):~/.claude/settings.json

  • 项目级配置(只影响当前项目):项目根目录 /.claude/settings.json

  • 项目上下文文件(告诉 AI 项目背景信息):项目根目录 /CLAUDE.md ← 最重要!

3.2.1 settings.json 配置文件

Claude Code 的配置文件位于 ~/.claude/settings.json(全局)或项目目录下的 .claude/settings.json(项目级)。复制到文件时,把注释删掉。

复制代码
{  // 允许 Claude Code 执行的操作(不再需要每次确认)  "permissions": {    "allow": [      "Read",        // 读取文件      "Write",       // 写入文件      "Bash(npm *)", // 执行 npm 命令      "Bash(git *)", // 执行 git 命令      "Bash(node *)" // 执行 node 命令    ],    "deny": [      "Bash(rm -rf *)" // 禁止执行危险的删除命令    ]  },  // 默认使用的模型  "model": "sonnet",  // 自动紧凑阈值(上下文使用超过此比例时自动压缩)  "autoCompactThreshold": 80}

注意:权限设置要谨慎。过于宽松的权限可能导致 AI 执行你不期望的操作。建议初学者保持默认设置,让Claude Code 在执行每个操作前都询问你确认。

Setting.json 相关总结

  1. 在用户自己的 setting.json 中配置 env 不对外暴露

  2. 使用CCSwitch管理 env 不对外

  3. 在工作目录里面创建 .claude/setting.json 或者 .claude/setting.local.json 添加允许的操作和禁止的操作

3.2.2 CLAUDE.md:你的项目 "说明书"

CLAUDE.md 是 Claude Code 中最重要的配置文件之一。它就像你给新来的实习生写的 "项目入职手册"------ 告诉 AI 这个项目的背景、技术栈、编码规范和当前进度。

为什么 CLAUDE.md 如此重要?

没有 CLAUDE.md 时,Claude Code 每次开始工作都要花时间 "重新认识" 你的项目。有了 CLAUDE.md,它一启动就知道项目的全部背景,效率大幅提升。

CLAUDE.md 文件模板

复制代码
## 项目名称## 项目概述一句话描述这个项目做什么。## 技术栈- 前端:Next.js 14 + TypeScript + Tailwind CSS- 后端:Next.js API Routes- 数据库:Prisma + SQLite- 部署:Vercel## 项目结构```textsrc/├── app/                 # Next.js App Router 页面│   ├── api/             # API 路由│   ├── layout.tsx       # 全局布局│   └── page.tsx         # 首页├── components/          # React 组件│   ├── ui/              # 通用UI组件│   └── features/        # 业务组件├── lib/                 # 工具函数和配置├── prisma/              # 数据库 schema 和迁移└── types/               # TypeScript 类型定义## 编码规范 - 使用函数式组件 + React Hooks- 组件文件使用 PascalCase 命名(如 BookmarkCard.tsx)- 工具函数使用 camelCase 命名- API 路由返回统一格式:{ success: boolean, data?: any, error?: string }- 所有数据库操作通过 Prisma Client 执行## 当前开发状态- 项目初始化完成- 数据库 Schema 设计完成- 书签 CRUD API 开发中- 前端页面待开发- 搜索功能待开发## 注意事项- SQLite 数据库文件在 prisma/dev.db,不要提交到 Git- 环境变量在 .env 文件中,不要提交到 Git- 所有新功能先创建 Git 分支再开发

对于claude非常重要,但是不一定要手写,可以通过AI生成。

CLAUDE.md 的三个层级(由顶向下叠加生效)

很多人只知道 CLAUDE.md 可以放在项目根目录,其实官方设计了 3 个层级的 CLAUDE.md,它们会同时生效、不冲突:

层级 路径 作用范围 适合写什么
全局级 ~/.claude/CLAUDE.md 所有项目都会读 个人习惯、身份、翻译偏好(如 "永远用中文回答"、"我是 xx、从事 xx")
项目级 项目根目录 /CLAUDE.md 仅本项目 项目技术栈、架构、规范、进度(可提交 Git,团队共享)
文件夹级 子目录 /CLAUDE.md 仅该子目录 模块专属约定(如 src/payment/CLAUDE.md 写支付模块踩过的坑)

三层叠加生效,不冲突。优先级:文件夹级 > 项目级 > 全局级。

全局配置的claude.md模板参看

复制代码
## 沟通方式- 默认中文回复;代码、命令、变量名、文件路径保持英文- 结论先行,简洁直接,不先铺垫背景- 不谄媚,不夸"这是个很好的问题",不以"当然可以"开头- 给真实判断------方案有问题直接指出,发现更好做法主动说明## Git- 不自动 `git commit` 或 `git push`,除非我明确要求- 提交前先展示将要提交的变更摘要- commit message 使用简洁英文## 红线操作以下操作即使在 auto-accept 模式下也必须先问我:- 删除文件、目录或 git 历史- 修改 `.env`、密钥、token、证书、CI/CD 配置- `git push`、`git rebase`、`git reset --hard`、强制推送- 公开发布(`npm publish`、生产部署等)

两个官方推荐的创建姿势:

  1. /init 创建项目级:在项目根目录下运行 claude 后输入 /init,CC 会自动扫描项目并生成一份 CLAUDE.md 初稿,你再调整。官方建议:项目有一定规模再 /init 效果更好(太空它扫不出什么东西)。

  2. /memory 编辑全局级:在 CC 会话里输入 /memory 选择 "全局 CLAUDE.md",会用默认编辑器打开该文件供你修改。修改全局后需重启 CC 才生效。

最佳实践:

  1. 保持更新:项目级 CLAUDE.md 应该是动态的 ------ 项目加了功能、踩了坑,就同步更新

  2. 足够具体:技术栈写明具体版本号,目录结构要与实际一致

  3. 写明禁忌:把 "不要做什么" 也写清楚(如 "不要修改数据库迁移文件")

  4. 适度简洁:不要写成论文,AI 需要的是关键信息而非赘述

  5. 只放 "顶层不变原则":随着实践你会发现,CLAUDE.md 不该塞太多。卡帕西发布的「claude.skills」几百行通用规则就能拿 10 万 + 的 Star------ 写点 "顶层、不变、须严守" 的东西就够了。

    大牛的github路径:https://github.com/multica-ai/andrej-karpathy-skills

3.2.3 第二层记忆:Auto Memory (cc 自己的笔记本)

如果说 CLAUDE.md 是你主动立下的规矩,那 Auto Memory 就是 cc 在干活过程中默默记下的设计笔记。你没显式写进 CLAUDE.md 的习惯、反馈、项目踩坑,会被一个后台 agent 静静记录。

如何启用

  • 在 cc 会话中输入 /memory

  • 在弹出的菜单里选第一个选项「启用 Auto Memory」

  • 启用后菜单里会多出「打开自动记忆文件夹」选项

Auto Memory 会记录的内容分类

类型 含义 举例
user 关于你本人 你的角色、偏好(如 "不喜欢深色 UI")
feedback 你给出的操作反馈 "不要这样做"、"就这样"
project 项目相关信息 项目进度、技术决策、技术选型
reference 外部资源索引 "某份设计文档在 docs/design.md"

使用手感(重要)

  1. 作用范围限制:仅在当前项目生效,记忆文件保存在项目目录,切换项目后需要重新积累记忆。

  2. Token 占用优化逻辑:启用后 CC 不会一次性加载全部记忆到上下文,仅读取memory.md索引文件;只有处理对应业务问题时,才加载匹配的子记忆文件,大幅减少 Token 消耗。

  3. 记忆查看快捷键:会话内按下 Ctrl+O,可直接查看本次对话实际调取过的记忆内容。

  4. 错误记忆清理方式:直接用自然语言指令删除错误记录,示例指令:忘掉刚刚说的不喜欢深色主题,工具会自动删除对应记忆条目。

提示:CLAUDE.md 与 Auto Memory 核心区分

一句话总结两者定位: CLAUDE.md 属于第一优先级、全量注入的显性规则;Auto Memory 属于第二优先级、按需加载的隐性记忆。两者搭配使用,CC 会持续适配你的个人开发习惯。

3.2.4 第三层记忆:自建参考文档(渐进式披露)

除了 CLAUDE.md、Auto Memory 两层记忆,还可以仿照 Skill 的「渐进式披露」机制,手动为 CC 搭建专项外部参考文档。

应用场景

部分规范内容篇幅过长、专业性强,不适合全部写入 CLAUDE.md,但 CC 处理对应业务时必须读取查阅,例如产品开发场景拆分如下:

  • 品牌视觉规范(颜色、字体、间距)→ docs/brand-visual.md

  • 产品文本风格(语调、统一术语表)→ docs/copywriting-style.md

  • API 交互约定(请求响应格式、错误码定义)→ docs/api-conventions.md

CLAUDE.md 内配置指引模板

复制代码
## 外部参考文档- 修改前端视觉、调整颜色 / 间距时,必读 docs/brand-visual.md- 撰写产品文案、按钮文字、页面提示语时,必读 docs/copywriting-style.md- 编写 API、定义接口返回格式时,必读 docs/api-conventions.md

个人理解:一个项目有一个整体的CLAUDE.md 文档,针对一个项目的各个功能流程可以不断补充自建参考文档并在 CLAUDE.md 中引入,当后续需要修改该功能的时候,CC 就会读取指定的功能自建文档,并不断优化扩展该文档,让 CC 更了解。我们就不用写代码,只要不断优化该文档即可。

核心优势

CC 仅在处理对应业务需求时,才加载完整外部文档,既能保证输出规范准确,又不会占用多余上下文 Token。

3.2.5 三层记忆总览

Claude Code 三层记忆体系流程: 第一层 CLAUDE.md (手动编写,会话全量加载)→ 第二层 Auto Memory (CC 自动记录,按需读取)→ 第三层自建参考文档(手动编写,匹配任务时读取)

位置 优先级 加载方式 维护方
1 CLAUDE.md(三级目录) 会话启动全量加载 手动维护
2 Auto Memory 先读取索引,按需加载对应子文件 CC 自动生成,人工校对修改
3 自建参考文档 按需 CC 触发对应任务才读取 手动维护

本质认知

Agent 全部记忆机制的底层逻辑:在合适时机向大模型注入压缩后的上下文。简单来说,三层记忆本质属于提示词工程,只是由 CC 完成分层、结构化管理。

3.2.6 .claudeignore 文件

功能说明

作用类似 .gitignore,用于配置过滤规则,告知 Claude Code 哪些文件、目录无需读取、扫描。

基础配置示例

复制代码
# .claudeignore 示例node_modules/        # 依赖包目录(体积庞大,AI无需读取).next/               # Next.js 构建产物dist/                # 编译输出目录*.log                # 所有日志文件.env                 # 环境变量文件(包含密钥等敏感信息)

CC帮我优化后内容

相关推荐
踏着七彩祥云的小丑1 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
有Li2 小时前
PTCMIL:基于提示 token 聚类的全切片图像多实例学习分析文献速递/多模态医学影像最新进展
论文阅读·学习·数据挖掘·聚类·文献·医学生
憧憬成为web高手2 小时前
l33t-hoster
学习·web安全·网络安全
Dick5072 小时前
ROS2 常用命令表
人工智能·学习·算法·机器人
qeen872 小时前
【Linux】Linux简单介绍与基本指令(上)
linux·运维·服务器·学习
.千余2 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.2 小时前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
库奇噜啦呼3 小时前
【iOS】RunLoop学习
学习·ios
AI棒棒牛3 小时前
第 03 讲《监督学习:数据、标签、Loss与训练循环》
人工智能·学习·yolo·目标检测·yolo26