Claude代码编程最佳实践与使用指南
用好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弹窗命令)
相关攻略
一、前言 AI编程工具迭代的速度,快到让人有些跟不上。在众多选手中,Claude Code凭借自主编码能力、完整的项目上下文理解和高效的工具调用体系,迅速成为开发者手中的关键利器。作为Anthropic推出的AI编码袋里,它不再只是简单的代码补全工具——而是能自主规划任务、执行代码、调试错误、管理项
在现代 JavaScript 应用开发中,条件编译与特性开关是管理复杂功能集的高效手段。Bun 运行时内置的 feature() 函数为这一需求提供了简洁而优雅的解决方案。该函数来自 bun:bundle 内置模块,其底层机制基于编译期的死代码消除:当传入的标识符(flag)值为 true 时,对应
AgentTeams功能让AI自主自动组队并行工作,三名队友分别独立负责模拟器、界面和数据库,仅45分钟内总计完成了全部133款可运行NES游戏、127张封面以及CRT模拟效果等完整功能系统,全程无需任何人工协调与任务分配。
Claude Code 最新上线的 Computer Use 功能,直接把开发效率的天花板彻底掀翻了。在官方演示中,只需要丢过去一个指令,AI 就能自动启动正在开发中的应用程序,自行复现 bug,自主修复问题,最后还会验证修补效果——相当于每个开发者凭空多了一位全能测试工程师,而且不用付工资。 这已
就在今天(4月16日),Anthropic正式推出了Claude Opus 4 7。说实话,这并非那种仅仅调整版本号、敷衍了事的升级,而是一次真正意义上的“硬核进化”。 简而言之,本次升级主要聚焦两大方向:让AI更精通代码编写,让AI的视觉识别更敏锐。最令人欣慰的是,在性能大幅跃升的同时,定价依然保
热门专题
热门推荐
《Paralives》开发商承诺所有后续更新永久免费,拒绝付费DLC模式。15人小团队依靠首发销售额即可支撑多年运营,无需依赖额外内容包维持开发,展现了与《模拟人生》系列不同的差异化竞争思路。
2025年5月28日,比亚迪王朝网全新力作——宋Ultra DM-i正式推向市场,共推出5款配置车型,官方售价区间为12 99万至15 99万元。此次定价策略极具突破性:一款拥有310公里纯电续航能力的中型插电混动SUV,直接下探至13万元级别市场。作为王朝网络的新旗舰,该车明确瞄准高频出行需求场景
先来关注一个有趣的细节:苹果首款折叠屏手机,传闻将于今年秋季正式亮相。产品命名可能为iPhone Ultra,也有媒体称之为iPhone Fold——无论最终叫什么,这都将标志着苹果在折叠形态领域首次“出手”。 近日,配件厂商iFunSmart已率先上架iPhone Ultra的首批保护壳——这绝非
山寨币ETF迎来批量上市潮,首批项目市场表现如何?一文分析 Binance币安 欧易OKX ️ Huobi火币️ 最近,市场出现了一个不容忽视的新动向:XRP、DOGE、LTC、HBAR等现货ETF已经悄然登陆美国市场。与此同时,A VAX、LINK等资产的同类产品也正在审批流程中。进入11月以来,
近日,公司对SteamDeck1TBOLED版涨价300美元至949美元,上架短短不到24小时便再度售罄。据外界分析,该公司从中国大量补货并分批投放库存,高溢价未影响众多玩家的抢购热情与速度,其人气极其旺盛无比足以支撑快速清空。





