程序员如何高效使用 Claude Code
程序员如何高效使用 Claude Code
Claude Code 是 Anthropic 推出的 CLI 编程助手,能直接在终端中理解你的代码仓库、执行命令、编辑文件、管理 Git——简单说,它就是一个住在你终端里的高级程序员搭档。但和所有强大工具一样,会用和用好之间隔着一道鸿沟。
本文综合了 Claude Code 创始人 Boris Cherny、Vue.js 作者尤雨溪、Google Chrome 工程负责人 Addy Osmani 等大咖的实战经验,以及 Anthropic 黑客松冠军 Affaan Mustafa 的两篇深度指南(The Shorthand Guide 和 The Longform Guide)的精华,以及社区优秀开源项目 everything-claude-code(50K+ Stars)和 awesome-claude-skills(38K+ Stars)的核心内容,帮你从”能用”进阶到”用好”。
一、理解核心约束:200K 上下文窗口
在学任何技巧之前,先理解这一点:Claude Code 的 200K token 上下文窗口是你最稀缺的资源。
一个 200 文件的中型项目全部加载需要约 800K token,是可用容量的 4 倍。高强度工作 30 分钟内就能把上下文填满。一旦上下文接近满载,Claude 会开始”遗忘”早期指令,输出质量急剧下降。
所以,所有最佳实践的核心都围绕一件事:上下文管理。
关键操作
| 操作 | 用途 |
|---|---|
/clear | 在不相关任务之间清空上下文(最常被推荐的技巧) |
/compact <描述> | 手动压缩上下文,在 70-80% 容量时执行 |
/context | 审计 token 使用情况 |
/statusline | 自定义状态栏,实时监控上下文占用百分比 |
黄金法则:在上下文使用率达到 70-80% 时手动执行
/compact,不要等到 95% 的自动压缩——那时已经太晚了。禁用自动压缩,在逻辑断点手动操作。
二、CLAUDE.md — 最重要的配置文件
CLAUDE.md 是 Claude Code 在每次会话开始时自动加载的指令文件,相当于给你的 AI 搭档写一份”入职手册”。
该写什么
1 | # 项目构建 |
不该写什么
- Claude 自己能推断出来的(标准语言规范)
- 频繁变动的信息
- 文件逐个说明(太冗长)
- “写出干净的代码”这种废话
- 详细的 API 文档(改用链接)
关键原则
- 控制在 50-100 行以内(约 2500 token)。太长的 CLAUDE.md 会导致规则被忽略——Boris Cherny 称之为”规则失忆症”
- 每条规则要有必要性:问自己”删掉这条 Claude 会犯错吗?”如果不会,就删掉
- 用强调语气标注关键规则:例如
IMPORTANT:或你必须 - 提交到 Git:让团队共同维护,Boris 的团队每周更新多次
- Claude 每犯一次错,就加一条规则:这是 Boris 的日常做法
- 用
@path/to/import语法引用额外文件,不要把所有内容堆在一个文件里
文件层级
1 | ~/.claude/CLAUDE.md # 全局配置(所有项目生效) |
Rules 目录 — 模块化替代方案
对于大型项目,用 .claude/rules/ 目录按关注点拆分规则:
1 | ~/.claude/rules/ |
三、Subagent(子代理)— 上下文保护的利器
子代理是 Claude Code 最强大的特性之一。每个子代理在独立的上下文窗口中运行,不会污染你的主会话。
尤雨溪的核心建议
“开一批 subagent,一个一个 fix,不要在一个 session 里面批量 fix,容易因为上下文不足产生幻觉。”
— 尤雨溪 (@yuxiyou)
这条建议揭示了一个关键原则:宁可开多个子代理逐一处理,也不要在一个会话里塞太多任务。每个子代理有自己的上下文窗口,不会互相干扰,也不会因为上下文过长而产生幻觉。
推荐的子代理架构
在 .claude/agents/ 目录下创建 Markdown 文件,社区推荐配置 13 个专业子代理:
规划与设计类:
planner.md— 复杂功能和重构蓝图architect.md— 系统设计和架构决策
代码质量类:
code-reviewer.md— 实现后质量审计tdd-guide.md— 测试驱动开发执行security-reviewer.md— 漏洞识别(提交前使用)
语言专用类:
go-reviewer.md、python-reviewer.md、java-reviewer.md
错误处理类:
build-error-resolver.md— 编译问题诊断e2e-runner.md— Playwright 端到端测试
维护类:
refactor-cleaner.md— 代码优化和清理doc-updater.md— 文档和代码库映射
子代理定义示例
1 | # .claude/agents/code-reviewer.md |
迭代检索模式
子代理返回摘要以节省上下文,但主代理拥有子代理缺乏的语义上下文(主代理理解目的,子代理只知道字面查询)。因此:
- 主代理评估每个子代理的返回
- 在接受前提出澄清性的后续问题
- 子代理回到源头寻找答案
- 循环直到充分(最多 3 个周期)
关键:传递目标上下文,而不仅仅是查询。
Writer/Reviewer 模式
这是社区公认的高质量工作流:
- Session A(Writer):实现功能代码
- Session B(Reviewer):用全新的上下文审查代码,没有”自己写的代码一定没问题”的偏见
四、Hooks — 确定性的自动化
CLAUDE.md 的指令是”建议性”的,Claude 可能遵守也可能忽略。而 Hooks 是确定性的——它们每次都会执行,没有例外。
六种 Hook 事件
| 事件 | 触发时机 | 用途示例 |
|---|---|---|
| PreToolUse | 工具执行前 | 阻止危险命令、tmux 提醒 |
| PostToolUse | 工具执行后 | 自动格式化、TypeScript 类型检查 |
| UserPromptSubmit | 发送消息时 | 拦截用户输入 |
| Stop | Claude 结束响应时 | 保存会话状态、console.log 检测 |
| PreCompact | 上下文压缩前 | 保存关键上下文 |
| Notification | 权限请求时 | 系统通知 |
实战 Hooks 配置
1 | { |
Pro tip:用 Stop hook(会话结束时执行一次)来持久化学习成果,而不是 UserPromptSubmit(每条消息都执行,影响延迟)。
更 Pro 的 tip:用
hookify插件对话式创建 Hook,运行/hookify然后描述你想要的行为。
五、上下文与记忆管理 — 跨会话持久化
跨会话记忆文件
创建 .tmp 文件在 .claude/ 目录中追踪会话进度:
1 | # .claude/session-state.tmp |
动态系统提示注入
不要把所有内容都塞进 CLAUDE.md,用 CLI 标志动态注入上下文:
1 | claude --system-prompt "$(cat memory.md)" |
系统提示的权威性高于用户消息,用户消息又高于工具结果。这给了你精确控制加载内容的能力。
实用别名设置:
1 | alias claude-dev='claude --system-prompt "$(cat ~/.claude/contexts/dev.md)"' |
记忆持久化 Hooks
三个被低估的 Hook 实现记忆管理:
- PreCompact Hook — 在上下文压缩前保存关键状态
- Stop Hook — 会话结束时持久化学习成果
- SessionStart Hook — 新会话自动加载之前的上下文
持续学习系统
当 Claude 发现非平凡的洞见(调试技巧、变通方案、项目特定模式)时,将其捕获为新的 Skill。后续类似问题会自动加载该 Skill,避免重复浪费 token。
六、Token 优化 — 省钱又提效
模型选择框架
不要总是用最贵的模型,90% 的编码任务 Sonnet 就够了:
| 任务类型 | 推荐模型 | 理由 |
|---|---|---|
| 探索/搜索文件 | Haiku | 速度和成本优势 |
| 简单编辑 | Haiku | 单文件变更,指令明确 |
| 多文件实现 | Sonnet | 编码工作的最佳平衡 |
| PR 审查 | Sonnet | 上下文理解 + 细微检测 |
| 文档编写 | Haiku | 结构化输出简单 |
| 复杂架构 | Opus | 需要深度推理 |
| 安全分析 | Opus | 不能遗漏漏洞 |
| 调试系统性问题 | Opus | 需要持有整个系统上下文 |
升级到 Opus 的信号:Sonnet 首次尝试失败、任务涉及 5+ 文件、架构决策、安全关键代码。
用 /model sonnet 切换默认模型,需要时再 /model opus。
推荐配置
1 | { |
- 默认 Sonnet 可节省约 60% 成本
- 限制思考 token 为 10,000(默认 31,999)
- 在 50% 容量时自动压缩
工具优化
- 用 mgrep 替代 grep/ripgrep,token 消耗减少约 50%
- 保持文件在数百行而非数千行,改善 token 成本和首次成功率
- 用
--lines选项限制文件读取范围,一个 400 行文件节省约 70% token
MCP 替换策略
许多 MCP 只是包装了现有 CLI 工具。虽然方便,但消耗上下文空间。建议:
- 用
/gh-pr命令包装gh pr create替代 GitHub MCP - 用 Supabase CLI 直接通过 Skill 操作替代 Supabase MCP
- 每个不启用的 MCP 都在为你节省上下文空间
七、工作流最佳实践
四阶段工作流(官方推荐)
1 | 探索 → 规划 → 实现 → 验证 |
- 探索:进入 Plan Mode(
Shift+Tab),让 Claude 阅读代码、回答问题,不做修改 - 规划:要求 Claude 创建详细的实现计划,用
Ctrl+G在编辑器中审查 - 实现:切换回 Normal Mode,Claude 按计划编码并自我验证
- 验证:要求 Claude 运行测试、构建、lint,确认一切正常
使用 Plan Mode 进行多文件修改时,架构错误减少约 45%。
验证循环 — 单一最高杠杆率实践
所有来源一致同意:给 Claude 一种验证自身工作的方式,可以将最终结果的质量提升 2-3 倍。
验证方式包括:
- 运行测试套件
- 执行构建和类型检查
- lint 和格式化检查
- 截图对比(UI 工作)
- 端到端测试
1 | # 在 CLAUDE.md 中添加验证指令 |
验证评估指标
1 | pass@k: 至少 k 次尝试中有一次成功 |
需要工作一次时用 pass@k,需要一致性时用 pass^k。
五阶段顺序架构(复杂任务)
1 | 阶段 1:研究 (Explore agent) → research-summary.md |
关键规则:
- 每个代理接收一个明确输入,产出一个明确输出
- 输出成为下一阶段的输入
- 绝不跳过阶段
- 阶段间用
/clear清理上下文 - 将中间输出存储在文件中
八、并行工作 — 成倍提升吞吐量
Boris Cherny 的工作设置
Claude Code 创始人 Boris Cherny 的日常工作方式:
- 5 个本地终端会话(编号 1-5)
- 5-10 个额外的 claude.ai/code 网页会话
- 每个本地会话使用独立的 Git checkout(不是分支或 worktree)
- 系统通知提醒何时 Claude 需要输入
- 用
--teleport在本地和网页会话之间交接 - 每天早上从手机上启动会话
并行策略
/fork — 为不重叠的任务创建分支会话。主聊天处理代码修改,fork 处理代码库问题、状态查询或外部服务研究。
Git Worktree — 为重叠的并行任务创建独立工作树:
1 | git worktree add ../project-feature-a feature-a |
Cascade 方法:
- 在新标签页中打开新任务(向右)
- 从左到右依次处理(最旧到最新)
- 上限 3-4 个并行任务
指导哲学:用最少的必要并行化完成最大的工作量。
两实例启动模式(项目初始化)
空仓库用两个 Claude 实例并行启动:
实例 1(脚手架代理):建立项目结构、创建配置(CLAUDE.md、rules、agents)
实例 2(深度研究代理):连接服务和网络搜索、开发详细 PRD、创建架构图(Mermaid 格式)、编译参考文档
九、Skills 和 Commands — 可复用的工作流
Skills vs Commands
- Skills:
~/.claude/skills/— 更广泛的工作流定义,Claude 根据任务自动激活 - Commands:
~/.claude/commands/— 通过斜杠命令快速执行的提示
1 | # 目录结构示例 |
Skills 中的 Codemap
Skills 可以包含 codemap——让 Claude 快速导航代码库而不必消耗大量上下文进行探索:
1 | # .claude/skills/project-map.md |
社区精选 Skills(awesome-claude-skills)
awesome-claude-skills 仓库收录了 150+ 个技能:
| 分类 | 数量 | 示例 |
|---|---|---|
| 开发工具 | 19 | 代码质量分析、Playwright 自动化、MCP 服务器构建 |
| 文档处理 | 5 | Word/PDF/PPT/Excel 操作 |
| 数据分析 | 4 | CSV 汇总、PostgreSQL 查询、根因分析 |
| 安全 | 4 | 数字取证、威胁狩猎、元数据提取 |
| 创意媒体 | 6 | Canvas 设计、图像增强、GIF 创建 |
| 效率工具 | 8 | 文件整理、发票管理、简历定制 |
| 应用自动化 | 78+ | 通过 Composio 集成 HubSpot、Jira、Slack、GitHub 等 1000+ 应用 |
安装使用
1 | # Claude Code 安装 |
十、MCP 服务器 — 扩展 Claude 的能力边界
MCP(Model Context Protocol)让 Claude Code 能连接外部工具和服务。它不是 API 的替代品,而是围绕 API 的提示驱动包装器。
推荐 MCP 配置
1 | { |
关键警告
“你的 200K 上下文窗口可能因为启用了太多工具而只剩 70K。”
- 可以配置 20-30 个 MCP,但同时启用的不要超过 10 个 / 80 个工具
- 每个 MCP 的工具描述都会消耗上下文 token
- 用
/mcp查看和切换 MCP 状态 - 如果底层服务有 CLI(如
gh、supabase、vercel),优先用 CLI 技能替代 MCP
十一、Plugins — 打包好的工具集
插件将工具打包以便安装,避免繁琐的手动设置。一个插件可以是 Skill + MCP 的组合,或者 Hooks/工具的捆绑。
推荐插件
1 | # 安装插件市场 |
| 插件 | 用途 |
|---|---|
typescript-lsp | TypeScript 智能补全(编辑器外运行时必备) |
pyright-lsp | Python 类型检查 |
hookify | 对话式创建 Hooks |
mgrep | 比 ripgrep 更好的搜索,节省约 50% token |
frontend-design | UI/UX 模式 |
commit-commands | Git 工作流自动化 |
context7 | 实时文档查询 |
和 MCP 一样的警告:只启用 4-5 个插件,监控你的上下文窗口。
LSP 插件的价值
如果你经常在编辑器之外运行 Claude Code,LSP 插件尤其有用。Language Server Protocol 让 Claude 获得实时类型检查、跳转定义和智能补全,无需 IDE。
十二、编辑器搭配建议
Zed(社区推荐)
Rust 编写,启动极快,巨型代码库也不卡顿,资源占用极低:
- 速度:Claude 快速编辑文件时编辑器跟得上
- Agent Panel:实时追踪 Claude 的文件变更
- CMD+Shift+R:快速访问所有自定义斜杠命令
- 低资源占用:不会和 Claude 竞争 RAM/CPU(运行 Opus 时很重要)
编辑器通用技巧
- 分屏:一侧终端运行 Claude Code,另一侧编辑器
- Ctrl+G:在编辑器中打开 Claude 当前工作的文件
- 开启自动保存:确保 Claude 读取的文件始终是最新的
- 文件监听:确认编辑器自动重新加载被修改的文件
语音输入
用语音转录代替打字——对大多数人来说更快。工具:superwhisper(Mac)、MacWhisper(Mac)。Claude 即使有转录错误也能理解意图。
十三、常见陷阱及避免方法
1. “厨房水槽”式会话
从一个任务开始,中途问一个无关的问题,再回到原来的任务。上下文被无关信息填满。
解决:/clear 在不相关任务之间。完成一个功能要去修一个 Bug?先 /clear。
2. 反复纠正
Claude 做错了,你纠正它,还是错的,你再纠正。上下文充满了失败的尝试。
解决:两次纠正失败后,/clear 然后重写一个更好的初始提示,把你学到的教训融入进去。
3. CLAUDE.md 过度膨胀
写了 500 行的 CLAUDE.md,Claude 忽略了一半。重要规则淹没在噪音中。
解决:无情精简。如果 Claude 在没有某条指令的情况下就能做对,就删掉它或者转成 Hook。
4. 全量加载项目
把 200 个文件的项目全部喂给 Claude——消耗约 800K token,是窗口的 4 倍。
解决:精准定位 3-5 个目标文件,效果远好于批量加载 50 个文件。
5. 跳过规划
让 Claude 直接开始写代码,结果解决了错误的问题。
解决:涉及 3 个以上文件的修改,一律使用 Plan Mode。
6. 无限探索
让 Claude “调查一下”但不限定范围,它读了几百个文件把上下文填满。
解决:严格限定调查范围,或使用子代理进行探索。
7. 草率开启 bypass 模式
23% 经历过破坏性执行的用户启用了 --dangerously-skip-permissions。
解决:用 /permissions 白名单安全命令。只在没有网络访问的容器中使用 skip permissions。
十四、快捷键与实用命令速查表
快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+U | 删除整行(比退格快得多) |
Shift+Enter | 多行输入 |
Shift+Tab | 切换思考模式 |
Esc Esc | 中断 Claude / 恢复代码 |
@ | 搜索文件 |
/ | 触发斜杠命令 |
! | 快速执行 bash 命令 |
Ctrl+G | 在编辑器中编辑 |
Tab | 切换思考显示 |
常用命令
| 命令 | 用途 |
|---|---|
/clear | 清空上下文(最常用) |
/compact | 手动压缩上下文 |
/context | 审计 token 使用 |
/fork | 分支会话 |
/model | 切换模型 |
/rewind | 回退到之前的状态 |
/checkpoints | 文件级撤销点 |
/statusline | 自定义状态栏 |
/mcp | 管理 MCP 服务器 |
/plugins | 管理插件 |
/rename | 标记聊天便于管理 |
终端别名
1 | alias c='claude' |
十五、科研场景:用 Claude Code 驱动 AI 研究全流程
Claude Code 不只是写业务代码的工具。结合 Hugging Face Skills 插件,它可以覆盖从数据准备到论文发表的完整 AI 科研工作流。
安装 Hugging Face Skills
1 | /plugin marketplace add huggingface/skills |
9 个 Skills 覆盖完整研究流程
| Skill | 用途 | 科研价值 |
|---|---|---|
| Model Trainer | 用 TRL 训练/微调语言模型(SFT、DPO、GRPO、奖励建模) | 可复现的训练流程,支持硬件选择和成本估算,GGUF 转换支持本地部署 |
| Trackio | 实时训练指标追踪和可视化仪表盘 | 实验追踪和消融研究,团队协作共享仪表盘到 HF Spaces |
| Evaluation | 模型评估和基准测试管理 | 导入 Artificial Analysis API 基准分数,用 vLLM/lighteval 框架运行自定义评估 |
| Datasets | 创建和管理 HF Hub 上的数据集 | 创建基准数据集、训练语料,SQL 查询和数据转换 |
| Paper Publisher | 在 HF Hub 发布和管理研究论文 | 论文-模型-数据集-代码一站式关联,提升可发现性和可复现性 |
| Gradio | 构建交互式 Web UI 和演示 | 为论文构建可交互 Demo,让审稿人/读者直接体验模型 |
| Jobs | 在 HF 基础设施上执行云端计算任务 | 无需自有 GPU,支持大规模训练和评估 |
| HF CLI | Hub 命令行操作(上传/下载模型和数据集) | 简化数据流水线和模型分发 |
| Tool Builder | 创建可复用的 API 自动化脚本 | 构建可复现的数据预处理流水线 |
典型科研工作流示例
用自然语言驱动整个流程:
1 | 第 1 步:数据准备 |
为什么科研人员应该关注
- 可复现性:所有 Skill 输出可版本控制的代码和配置,论文审稿人可以一键复现
- 开放科学:论文、模型、数据集、代码在 HF Hub 上形成完整的工件链
- 零硬件门槛:通过 HF Jobs 在云端训练大模型,内置成本估算
- 团队协作:Trackio 实时仪表盘支持多人同时查看实验进展
- 跨平台:这些 Skill 同时支持 Claude Code、Cursor、Codex CLI 和 Gemini CLI
一个完整的 AI 研究项目——从数据集构建到论文发表——现在可以在 Claude Code 终端中用自然语言指令驱动完成,所有代码自动生成且可复现。
十六、安全最佳实践
核心原则
“每个集成都创建了一个潜在的入侵点。”
沙箱与访问控制
- 通过
allowedTools限制工具为仅必要功能 - 实施拒绝列表阻止敏感目录:
~/.ssh、~/.aws、凭据文件 - 不受信任的仓库在
--network=none的 Docker 容器中运行
数据保护
- LLM 读取的一切内容实际上都是可执行上下文——验证所有外部内容
- 审计配置和 Skills 中的所有外部链接
- 内联外部文档而不是链接到可能被篡改的源
记忆投毒预防
定期审计持久化文件——恶意片段可能跨会话积累。
AgentShield
使用 npx ecc-agentshield scan 进行自动漏洞扫描,覆盖 102 条安全规则。
总结
Claude Code 不仅仅是一个代码补全工具,它是一个需要管理的高级协作者。像管理一个极其聪明但记忆有限的团队成员一样来使用它:
| 实践 | 影响 |
|---|---|
| 给 Claude 验证手段(测试、截图、构建) | 质量提升 2-3 倍 |
/clear 在不相关任务之间 | 防止上下文污染 |
| 使用 Plan Mode 进行多文件修改 | 架构错误减少约 45% |
| CLAUDE.md 控制在 100 行以内 | 防止规则失忆 |
| 用子代理做研究 | 保护主上下文窗口 |
在 70-80% 容量时 /compact | 避免性能下降 |
| 并行会话用独立 Git checkout | 成倍提升吞吐量 |
| PostToolUse Hook 自动格式化 | 零例外的一致性 |
| 禁用未使用的 MCP | 回收上下文空间 |
两次纠正失败后 /clear 重写 | 比累积修复更干净 |
“早期我花时间构建可复用的工作流和模式。构建过程很繁琐,但随着模型和代理工具的改进,这产生了疯狂的复利效应。” — Affaan Mustafa
掌握这些原则,你就能把 Claude Code 从一个”偶尔有用的工具”变成”不可或缺的编程搭档”。
参考资源
- Claude Code 官方文档
- everything-claude-code — 50K+ Stars 的 Claude Code 全方位指南
- The Shorthand Guide to Everything Claude Code — 简明指南
- The Longform Guide to Everything Claude Code — 深度指南
- awesome-claude-skills — 150+ 可复用 Skills 仓库
- Boris Cherny 的工作流 — Claude Code 创始人如何使用自己的工具
- Addy Osmani 的 AI 编码工作流 — Google 工程负责人的实战经验
- YK 的 45 个 Claude Code 技巧
- 32 Claude Code Tips: From Basics to Advanced
- Hugging Face Skills — 9 个 AI/ML 科研 Skills,覆盖训练、评估、发布全流程





