进阶教程
Claude编程最佳实践与代码优化权威指南
摘要
用好ClaudeCode需把握三个核心:高效管理上下文窗口,避免冗余信息;提供测试等客观反馈
用好Claude Code,核心就三件事:管好上下文、让它自己验证、遵循探索-规划-实现的顺序。理解了这些,剩下的都是具体场景下的灵活应用。
核心心法(理解它们,剩下都是变奏)
- 上下文窗口是最宝贵的资源。 每一条消息、每一个读取的文件、每一次命令输出都在消耗这个空间。空间越满,Claude的“思考”能力就越受限。所以,只让真正有用的信息进入对话,任务切换时,要果断地使用
/clear清空上下文。 - 给Claude自我验证的方式。 无论是运行测试、执行Lint检查、对比截图,还是跑
tsc --noEmit,客观的反馈能让它自己迭代到正确的结果。你只需要在关键节点把关,效率自然就上来了。 - 顺序是 Explore → Plan → Code。 面对新任务,先让它读懂相关代码的上下文,再和你确认具体的实施方案,最后才动手写代码。当然,如果是修改单行代码(比如改个拼写错误、加个日志)这种小活儿,可以直接动手。但凡涉及多个文件或不熟悉的代码逻辑,一定要先规划。
推荐工作流:标准四步法
一个高效且稳妥的工作流可以概括为:Plan Mode 探索 → Plan Mode 出方案 → Normal Mode 实现 → 跑测试 + 提PR。
| 阶段 | 模式 | 你说的话(示例) |
|---|---|---|
| Explore | Plan Mode(Shift+Tab 切换) |
“读一下 /src/auth 目录,搞清楚session和登录是怎么处理的,顺便看看环境变量里密钥是怎么管理的。” |
| Plan | Plan Mode | “我想增加Google OAuth登录。需要改哪些文件?session流程要怎么调整?给我一份详细的改动计划。” |
| Implement | Normal Mode | “就按你刚才的计划,实现OAuth流程。给callback handler写好测试,跑完测试并把失败的修掉。” |
| Commit | Normal Mode | “用一个有信息量的commit message提交这些改动,并开一个Pull Request。” |
9 大抄作业级 Prompt(直接拿去改)
1. 摸清新代码库
1. cd /path/to/project
2. claude
3. “给我这个代码库的整体概览”
4. “讲讲这里用的主要架构模式”
5. “认证是怎么处理的?”
2. 修复 Bug
“跑 npm test 时报错了:<粘贴完整stack trace>”
“user.ts 里的那个 @ts-ignore,给我列几种修复方案。”
“按你建议的方案,给 user.ts 加上空值检查。”
3. 重构旧代码
“找一下代码库里用到的过期API。”
“给点建议:怎么把 utils.js 重构成使用现代JS特性?”
“用ES2024特性重构 utils.js,保持原有行为不变。”
“跑一下重构后代码的测试。”
4. 编写测试
“找出 NotificationsService.swift 里没被测试覆盖的函数。”
“给 notification service 加测试,要覆盖边界场景,不要用mock。”
“跑一下新加的测试,把失败的修掉。”
5. 开启 PR
“总结一下我对认证模块做的所有改动。”
“开个PR。”
“在PR描述里再补充一些关于安全改进的上下文。”
6. 撰写文档
“找出 auth 模块里缺少 JSDoc 注释的函数。”
“给 auth.js 里没注释的函数补上 JSDoc。”
“把生成的文档润色一下,加点上下文和示例。”
7. 处理图片 / 截图
直接把图拖进窗口、Ctrl+V 粘贴、或者用命令 “分析这张图:/path/to/image.png”。
“这是报错截图,可能是什么原因?”
“[贴设计稿] 按这个设计实现,完成后截图对比,列出差异并修复。”
8. 用 @ 精准投喂上下文
“解释一下 @src/utils/auth.js 里的逻辑。”
“@src/components 这个目录的结构是怎样的?”
9. 当 Unix 工具用(CI / 脚本里)
# 管道分析
cat build-error.txt | claude -p '简明地解释这个构建错误的根本原因' > out.txt
# 结构化输出
cat code.py | claude -p '分析这段代码里的 bug' --output-format json > analysis.json
环境配置(一次配好,长期受益)
1. CLAUDE.md:项目的持久记忆
运行 /init 命令可以生成一个骨架文件。这个文件可以放在 ./CLAUDE.md(团队共享)、./CLAUDE.local.md(个人使用,建议加入.gitignore)或 ~/.claude/CLAUDE.md(全局配置)。
| ✅ 必须写 | ➖ 不要写 |
|---|---|
| Claude 猜不到的、项目特定的 bash 命令 | 看代码就能推出来的内容 |
| 偏离默认的代码风格或测试命令 | 详细的API文档(放个链接就行) |
| 仓库礼仪(比如分支命名、PR规范) | 频繁变化的信息或“写干净代码”这种泛泛之谈 |
| 项目里容易踩到的坑(gotcha) | 文件级的冗长描述 |
2. 权限配置:减少点“Yes”的疲惫
| 方式 | 一句话 | 适用场景 |
|---|---|---|
| Auto mode | 内置分类器把关,只拦截危险动作 | 日常大多数任务,首选 |
| Allowlist | 用 /permissions 把 npm run lint 等安全命令加入白名单 |
反复使用的、确定安全的命令 |
| Sandbox | 用 /sandbox 启用操作系统级隔离 |
需要更大操作自由度,但又想有个兜底 |
# 用 auto mode 运行
claude --permission-mode auto -p "fix all lint errors"
3. 给 Claude 装上更多翅膀
| 工具 | 何时用 |
|---|---|
CLI 工具(如 gh, aws) |
调用外部服务最省token的方式,装上就能用 |
| MCP servers | 用 claude mcp add 连接 Notion、Figma、数据库等 |
| Hooks | 用于确定性触发(比如编辑后自动跑eslint,或阻止写入migrations目录) |
| Skills | 按需加载的领域知识,放在 .claude/skills/ |
进阶玩法:规模化与隔离
Subagents:保护主对话的上下文
把研究型任务委托给子袋里(Subagent),它们在独立的上下文里运行,最后只返回摘要结果,不污染主对话。
“用 subagent 调查一下我们的认证系统如何处理 token 刷新,再看看有没有现成的 OAuth 工具库可用。”
Git Worktrees:多个 Claude 互不干扰
claude --worktree feature-auth
claude --worktree bugfix-123
记得把 .claude/worktrees/ 目录加到项目的 .gitignore 文件里。
Fan Out:跨文件批量执行
for file in $(cat files.txt); do
claude -p "把 $file 从 React 迁移到 Vue。返回 OK 或 FAIL。" --allowedTools "Edit,Bash(git commit *)"
done
Writer / Reviewer 模式
| Session A (Writer) | Session B (Reviewer) |
|---|---|
| “实现一个API限流中间件。” | |
| “Review @src/middleware/rateLimiter.ts 的限流实现,找找边界情况、竞态条件。” | |
| “处理 review 反馈:[粘贴B的输出]” |
会话与上下文管理
跑偏了怎么办
Esc:立刻打断当前动作,上下文保留。Esc + Esc或/rewind:打开回退菜单,可以恢复到之前的对话和代码状态。- 纠正2次还不对? 很可能上下文已经被污染了,果断
/clear,然后用更具体的prompt重新开始。
上下文清理
/clear:任务切换时的必备操作,重置上下文。/compact 聚焦API变更:手动压缩上下文,只保留指定的重点内容。/btw 这个函数干嘛的:弹层快速问答,答案不进对话历史,极其节省上下文。
恢复会话
claude --continue
# 恢复最近的对话
claude --resume
# 从历史会话中选择
claude -n auth-refactor
# 给当前会话命名
claude --resume auth-refactor
# 按名字恢复指定会话
常见反模式(避开这些坑)
| 反模式 | 症状 | 解法 |
|---|---|---|
| 厨房水槽会话 | 一个会话里做多个不相关的任务,上下文充满噪音 | 不同任务之间用 /clear |
| 反复纠正 | 纠正两三次,Claude还是没理解对 | /clear,用更具体、更清晰的prompt重新开始 |
| CLAUDE.md 膨胀 | 规则写得太长,Claude可能忽略一半 | 无情修剪,能转成Hook的就转成Hook |
| 信任但不验证 | 代码看起来对,但跑起来没处理边界情况 | 始终提供验证手段(测试、脚本、截图对比) |
| 无限探索 | “你研究下…” 结果它读了上百个文件 | 明确限定调查范围,或用subagent进行隔离研究 |
速查卡
实用快捷键
| 快捷键 | 作用 |
|---|---|
Shift+Tab |
切换模式(Normal → Auto-Accept → Plan) |
Esc |
停止当前动作 |
Esc + Esc |
打开回退菜单 |
Ctrl+G |
在编辑器中打开/编辑计划 |
Ctrl+O |
切换verbose模式(查看思考过程) |
Alt+T |
切换thinking mode |
常用命令
# 启动
claude # 正常启动
claude --permission-mode plan # 直接进 Plan Mode
claude --permission-mode auto # Auto Mode
claude --worktree feature-x # 隔离 worktree 启动
# 会话内
/init # 生成 CLAUDE.md 骨架
/clear # 清空上下文
/compact # 压缩上下文
/rewind # 回退到检查点
/btw # 侧边快速提问(不入上下文)
/rename X # 重命名当前会话
附加:长任务跑后台时叫你一声
往 ~/.claude/settings.json 里添加一个通知Hook:
{
"hooks": {
"Notification": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "osascript -e 'display notification \"Claude 需要你的关注\" with title \"Claude Code\"'"
}]
}]
}
}
(Linux系统换成 notify-send,Windows系统可以用PowerShell弹窗命令)
来源:互联网
免责声明
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。