本文根据 Claude Code 官方文档《Best practices for Claude Code》整理并改写,核对日期 2026-10-07。官方说明这些做法来自 Anthropic 内部团队和各类代码库的工程师实践,是「起点」而不是铁律。
适用于谁
- 已经会用 Claude Code,但觉得它时好时坏、经常需要返工的人;
- 搜「claude code 最佳实践」「使用技巧」「教程」想系统提升效率的人;
- 想让 Claude 更长时间自主工作、少盯着它的人。
入门安装和基本命令详见本站《Claude Code 中文入门教程(2026):安装、登录、第一个任务、常用命令》。
结论先说:一切围绕一个约束
官方开宗明义:大多数最佳实践都源于一个限制——上下文窗口很快会被填满,而且越满表现越差。一次调试或代码探索就可能产生几万 token;上下文快满时,Claude 可能「忘记」前面的指示或犯更多错。所以:
- 给 Claude 一个能自己运行的检查(测试、构建、截图对比),这是「你得一直盯着」和「你可以走开」的区别;
- 先探索、再计划、后写代码,避免解决错的问题;
- 提示写具体:指明文件、场景、约束、参考的现有写法;
- 主动管理上下文:换任务就
/clear,调研交给子代理; - 尽早纠偏:方向不对立刻按 Esc,纠正两次还不行就清空重来。
一、给 Claude 一个能验证的方式
Claude 觉得「看起来做完了」就会停下。没有可运行的检查,你就成了唯一的验证环节,每个错误都要等你发现。给它一个返回「通过 / 失败」的东西,它就会「干活 → 跑检查 → 看结果 → 再改」直到通过。
| 场景 | 不好的写法 | 更好的写法 |
|---|---|---|
| 给出验证标准 | 「写一个校验邮箱的函数」 | 「写一个 validateEmail 函数。测试用例:[email protected] 为真,invalid 为假,[email protected] 为假。写完运行测试」 |
| 界面改动做视觉验证 | 「把仪表盘做得好看点」 | 「[贴截图] 按这个设计实现。实现后截图和原图对比,列出差异并修正」 |
| 解决根因而不是症状 | 「构建失败了」 | 「构建报这个错:[贴报错]。修复并确认构建成功。解决根本原因,不要把错误压掉」 |
检查力度可以逐级加强:
- 在一条提示里:让它跑检查并反复修改(上表的写法);
- 整个会话:用
/goal设定目标条件,每轮结束后由独立的评估器复查,没达成就继续; - 确定性的关卡:用 Stop Hook 跑检查脚本,不通过就不让这一轮结束(详见本站《Claude Code Hooks 怎么用:配置示例(完成通知、自动格式化、拦截危险命令)》);
- 第二意见:让一个子代理在全新上下文里审查结果,干活的和打分的不是同一个。
还有一条:让 Claude 拿出证据(测试输出、运行的命令和返回、结果截图),而不是只说「完成了」。看证据比你自己重跑一遍快。
二、先探索,再计划,后写代码
官方推荐的四步:
- 探索(plan 模式):「阅读 /src/auth,搞清楚我们怎么处理 session 和登录」;
- 计划:「我想加 Google OAuth,要改哪些文件?流程是怎样的?写一份方案」,可以按
Ctrl+G在编辑器里直接改方案; - 实现:批准方案后,「按方案实现,给回调写测试,运行测试并修复失败」;
- 提交:「用清楚的说明提交,并开一个 PR」。
但官方也说 plan 有开销:能用一句话描述的 diff,就跳过计划直接做。不确定做法、要改多个文件、不熟悉代码时才最值得规划。plan 模式的具体操作详见本站《Claude Code Plan 模式怎么用:先出方案再改代码》。
三、提示要具体
| 策略 | 模糊 | 具体 |
|---|---|---|
| 限定范围 | 「给 foo.py 加测试」 | 「给 foo.py 写一个测试,覆盖用户已登出的边界情况,不要用 mock」 |
| 指明信息来源 | 「ExecutionFactory 的 API 为什么这么怪?」 | 「翻一下 ExecutionFactory 的 git 历史,总结它的 API 是怎么演变成这样的」 |
| 参考现有写法 | 「加一个日历组件」 | 「先看首页现有组件是怎么实现的,HotDogWidget.php 是个好例子。照这个模式实现一个可以选月份、前后翻年份的日历组件,除了项目已有的库不要引入新库」 |
| 描述症状 | 「修一下登录 bug」 | 「用户反馈 session 超时后登录失败。检查 src/auth/ 的认证流程,尤其是 token 刷新。先写一个能复现问题的失败测试,再修复」 |
给信息的方式也很多:用 @文件 直接引用而不是描述位置;直接粘贴或拖入截图;给出文档链接;用管道喂数据(cat error.log | claude -p "解释这个错误");或者干脆让 Claude 自己用命令、MCP 工具去拿。
探索阶段,模糊的提示也有用:「这个文件你会怎么改进?」可能会发现你没想到的问题。
四、把环境配好
- CLAUDE.md:用
/init生成,再逐步打磨。只写 Claude 猜不到、且普遍适用的东西(构建命令、和默认不同的代码风格、测试方法、分支和 PR 规范、环境怪癖)。对每一行问自己:「删掉它,Claude 会犯错吗?」不会就删。文件太长,重要规则反而会被淹没。写法详见本站《CLAUDE.md 怎么写:最佳实践、模板与 AGENTS.md 的区别》。 - 权限:用
/permissions预先放行信得过的命令,用/sandbox让沙箱内的命令免确认。 - 命令行工具:让 Claude 用
gh、aws、gcloud等 CLI 操作外部服务,这是最省上下文的方式;不认识的工具可以让它先--help学一下。 - MCP:接入 Notion、Figma、数据库等外部工具。
- Hooks:必须「每次都执行、没有例外」的动作用 Hook,它是确定性的;CLAUDE.md 只是建议。
- Skills:领域知识和可复用流程写成技能,按需加载,不占每次会话的上下文。
- 子代理:读大量文件、需要专注的任务交给专门的子代理。
- 插件:有强类型语言的项目,装一个代码智能插件,Claude 能精确跳转定义、改完自动发现类型错误。
五、像和同事一样沟通
- 把它当资深工程师来问:「日志是怎么做的?」「新增一个 API 接口要怎么做?」「这里为什么调用 foo() 而不是 bar()?」——官方说这是很有效的新人上手方式。
- 大功能先让它采访你:
text
我想做 [一句话描述]。请用 AskUserQuestion 工具详细采访我,
问技术实现、界面交互、边界情况、顾虑和取舍。别问显而易见的问题,挖我可能没想到的难点。
问完后把完整的需求规格写进 SPEC.md。
SPEC 写好后开一个新会话去实现:上下文干净,又有书面规格可对照。好的规格应该自成一体:写明涉及的文件和接口、明确什么不做、最后有一个端到端的验证步骤。
六、管好会话
尽早、经常纠偏:
Esc:立即停下,上下文保留,可以换个方向;Esc连按两次或/rewind:回退对话和代码到之前的检查点;- 「撤销刚才的改动」:让 Claude 自己还原;
/clear:不相关的任务之间重置上下文。
官方经验:同一个问题纠正超过两次还不对,就 /clear,把学到的东西写进一条更好的新提示重新开始。干净的会话加更好的提示,几乎总是胜过一个堆满纠正记录的长会话。
激进地管理上下文:换任务就 /clear;需要时 /compact 重点保留……;不需要留在上下文里的小问题用 /btw。详见本站《Claude Code 上下文满了怎么办:/compact、/clear 与省 token 技巧》。
调研交给子代理:「用子代理调查一下我们的认证系统怎么刷新 token、有没有可以复用的 OAuth 工具」。它们在独立上下文里读文件,只把结论带回来。
大胆试,靠检查点兜底:每条提示都会建一个检查点,可以只恢复对话、只恢复代码或两者都恢复。但官方提醒:检查点只记录 Claude 用编辑工具做的改动,通过 shell 命令或外部程序做的修改不在内,它不能代替 git。
像分支一样管理会话:用 /rename 起有意义的名字(如 oauth-migration),之后 claude --continue 接着上次,或 claude --resume 从列表里挑。
七、自动化与并行
- 非交互模式:
claude -p "提示词"用在 CI、pre-commit Hook、脚本里,可输出 JSON 或流式 JSON,详见本站《Claude Code headless 模式:用 claude -p 写脚本和自动化》。 - 多个会话并行:用 worktree 隔离文件改动(详见本站《Claude Code worktree 怎么用:多个会话并行开发不打架》)、桌面版可视化管理多个会话、云端会话、后台会话等。
- 写 / 审分离:会话 A 实现限流器,会话 B 在全新上下文里审查 A 的实现,再把意见交回 A 修改——全新上下文的审查不会偏向自己刚写的代码。测试也可以这样:一个写测试,另一个写代码让测试通过。
- 批量扇出:大规模迁移可以用
/batch拆给 5~30 个子代理,或者自己写循环逐个文件调用claude -p,先在两三个文件上调好提示词再全量跑。 - 对抗式审查:任务完成前,让一个子代理对照方案审查 diff。但要提醒审查者只报影响正确性和需求的问题,否则「被要求找问题」的审查者总会找出一些,照单全收会导致过度设计。
八、五种常见失败模式
| 失败模式 | 表现 | 解决 |
|---|---|---|
| 大杂烩会话 | 一个任务做到一半问了件不相关的事,又回来,上下文全是无关内容 | 不相关任务之间 /clear |
| 反复纠正 | 错了纠正、还错再纠正,上下文塞满失败的尝试 | 两次纠正失败就 /clear,写更好的初始提示 |
| CLAUDE.md 写太多 | 太长导致一半规则被忽略 | 狠狠删减;Claude 本来就做得对的就删掉或改成 Hook |
| 信任但不验证 | 实现看着合理,却没处理边界情况 | 一定提供验证手段(测试、脚本、截图),无法验证就不要上线 |
| 无限探索 | 让它「调查一下」却不限范围,读了几百个文件 | 缩小调查范围,或交给子代理 |
常见问题
Q:这些规则必须严格遵守吗?
官方说不是:有时深陷一个复杂问题,就该让上下文累积;有时任务是探索性的,就该跳过计划;有时模糊的提示正合适。多观察什么时候效果好、为什么,慢慢形成自己的直觉。
Q:auto 模式适合长时间无人值守吗?
官方推荐用 auto 模式做不间断执行:分类器在后台拦截越权、陌生基础设施和被恶意内容驱动的操作。但它不保证绝对安全,敏感操作仍需人工审查。
Q:CLAUDE.md 和 Skills 怎么分工?
每次会话都需要的少量规则放 CLAUDE.md;只在特定场景用到的知识和流程做成技能,用到时才加载。技能详见本站《Claude Skills 是什么、怎么装、推荐哪些》。
参考资料
- Best practices for Claude Code(官方):https://code.claude.com/docs/en/best-practices
- How Claude Code works(官方):https://code.claude.com/docs/en/how-claude-code-works
- Common workflows(官方):https://code.claude.com/docs/en/common-workflows
- Extend Claude Code(官方):https://code.claude.com/docs/en/features-overview
- Checkpointing(官方):https://code.claude.com/docs/en/checkpointing
0 条评论
还没有评论,来抢沙发~