Skip to content

21. 最佳实践

本章你将学到

  • 最高价值的 8 条实践原则
  • 常见失败模式及修复方法
  • 上下文管理技巧

21.1 给 Claude 一种验证方式 ⭐ 最重要

这是所有实践中回报最高的一条。没有验证方式,Claude 可能写出看起来对但实际有 bug 的代码。

场景差的做法好的做法
函数实现实现一个邮箱校验函数写 validateEmail,测试:user@x.com → true,invalid → false。写完跑测试
UI 开发让 dashboard 好看点[粘贴设计稿] 按这个实现,完成后截图对比,列出差异并修复
Bug 修复构建挂了修一下构建报错如下:[错误]。修复并验证构建通过,修根因不要压错误

21.2 先探索,再规划,最后写码

参见 计划模式

什么时候必须先计划

  • 任务涉及 3 个以上文件
  • 你不熟悉这段代码
  • 需要设计数据结构或架构
  • 有多种实现方案需要权衡

什么时候直接做

  • 改错别字
  • 加一行日志
  • 重命名一个变量

21.3 提供具体上下文

模糊提示 → 模糊结果。

# 差:模糊
修复登录 bug

# 好:具体
用户反馈 session 超时后重新登录失败。
错误信息:[粘贴错误]
相关代码应该在 src/auth/session.ts。
先写一个能复现问题的失败测试,再修复。
# 差:没有参照
加个日历组件

# 好:引用已有模式
参考 src/components/DatePicker.tsx 的实现方式,
按同样的 props 接口和样式系统做一个 CalendarView 组件

21.4 紧跟反馈循环

Claude 走错方向时立刻打断,别等它做完:

# 立刻打断
Esc  ← 打断,保留上下文

# 回滚到检查点
Esc Esc  ← 选择回滚点

# 撤销所有修改
说 "undo that" 或 "撤销刚才的改动"

# 同一问题纠正超过 2 次
/clear  ← 清空,用更好的提示重开

「反复纠错」是危险信号

如果你纠正了 Claude 两次还是不对,说明你的提示词或上下文有问题。别继续纠错——用 /clear 清空,重新从更清晰的描述开始。

21.5 积极管理上下文

上下文就像工作记忆——用完了 Claude 就开始「遗忘」。

# 任务之间清空
/clear

# 查看上下文占用
/context

# 手动压缩
/compact 聚焦于认证逻辑相关的讨论

# 长研究任务交给子代理
用 Explore 子代理分析 src/ 目录的结构,告诉我主要模块和依赖关系

21.6 配置好环境

Claude Code 配置得越好,你需要在每次会话里解释的就越少:

  • ✅ 写好 CLAUDE.md(用 /init 起步)
  • ✅ 配置权限减少弹窗(/fewer-permission-prompts
  • ✅ 安装 ghdockeraws 等 CLI 工具(Claude 会用到)
  • ✅ 连接 MCP 服务器(claude mcp add
  • ✅ 把硬性规则写成 Hooks,而不是在 CLAUDE.md 里「建议」
  • ✅ 把可复用工作流写成 Skills(.claude/skills/

21.7 大型功能:先让 Claude 采访你

大型功能前,你自己可能都没想清楚。让 Claude 帮你梳理需求:

我想做 [功能名称]。

在写代码之前,用问题的方式采访我,覆盖:
- 技术实现方案
- 数据模型设计
- 边界情况处理
- 与现有系统的集成

专注于我可能没考虑到的难点,不要问显而易见的。
采访完后,把完整需求 spec 写到 SPEC.md。

然后开一个新会话执行 spec——干净的上下文专注实现。

21.8 常见失败模式

失败模式症状修复
厨房水槽会话一个会话里聊了 N 个不同任务任务间用 /clear 隔离
反复纠错改了不对再改还不对纠错 2 次后清空,换更好的提示
CLAUDE.md 臃肿规则太多,Claude 开始忽略无情删减,把强制规则改成 Hooks
信任但不验证感觉对,但没测试永远附上验证方式(测试/脚本/截图)
无限探索"调查一下 X",Claude 读了几百个文件明确范围,或交给子代理
方向错误写了大半才发现思路不对先计划模式探索,再动手

基于官方文档整理,持续更新