Claude Code 最佳实践指南
说出来你可能不信,我拿到Claude Code头两个月,简直是一场又哭又笑的灾难。
丢进去一个需求,它哗哗哗写完了。我一跑——满屏红色错误。改几轮,上下文乱了,它开始胡说八道。最后我默默关掉终端,回去手写。那一刻我真怀疑自己是不是买了个高级玩具。
直到我狠下心,把Anthropic官方文档、Boris Cherny(Claude Code核心开发者)在X上的每一条分享、还有社区里那个知名的项目全啃了一遍,才算真的摸到门道。
今天这篇就是我踩坑一年换来的真家伙。不整虚的,全是拿时间砸出来的。
先别急着让它写代码——你得先给份“入职手册”
你想想,一个新人刚进你的项目,总得给人看看文档吧?CLAUDE.md就是干这个的。
很多人拿到Claude Code张嘴就是“开始写”,结果呢?它连你团队用什么命名规范都不知道,写出来的代码风格跟项目割裂得跟两个妈生的一样。
怎么办?跑一下claude /init生成起步文件,然后——狠心压缩到200行以内。怎么压缩?每一行都问自己:删掉它Claude会犯错吗?不会?删!
我见过最夸张的CLAUDE.md写了800多行,把团队wiki都塞进去了。Claude读到后半段,前面写了啥?早忘了。这文件等于白写。
只写它从代码里看不出来的东西。 比如你们私有UI组件的命名规范、API的baseURL、测试框架的特殊配置。别写“这个项目用React”——它看你package.json就知道。
说到这儿,得提醒一个坑:CLAUDE.md提交到版本控制后,团队每个人都能爽到,但这不是一劳永逸的。我每两周过一遍,把那些Claude已经不需要的内容删掉。保持精炼,它才会真正去读。
这两个设置不改,等于白用——一个让你瞬间变傻,一个让你疯狂弹窗
先说第一个:effort。
Anthropic在某个时间悄悄把默认effort从high降到了medium,而且压根没发公告!我连着几天觉得Claude Code变傻了,输出质量明显下降,气得差点想换工具。后来查了半天,才发现是这玩意儿在搞鬼。
那种感觉就像你明明买的是辆跑车,结果被默认限速在40码。
现在我的做法?直接在.claude/settings.json里强制锁死:
{
"effort": "high"
}复杂任务我直接上/effort max,简单格式化才切/effort low。
还有一个更隐蔽的坑:自适应思考。最近Claude开始自主决定每轮分配多少算力。遇到它判定为“简单”的任务,它直接跳过思考步骤——然后给你制造一堆灾难性的下游bug。解决方案是用环境变量固定每轮推理预算,别让它自作聪明。
再说第二个:权限策略。
默认的“每步确认”?我上午试了一次,弹出47次确认提示。你没有看错,47次。你想想,你每写一行代码都有人在你耳边问“你确定吗?”,你还干得下去?
我的配置是这样:
- 可信仓库:开`acceptEdits`模式,自动接受文件修改。
- 不熟悉的代码库:开`plan`模式,先看计划再动手。
在settings.json里写清楚allow和deny规则。比如哪些目录只能读不能写。不这样搞,Claude会连.git目录和.env都去翻——这事儿我亲身经历过,它差点把我的数据库密码写到代码注释里!
调对Effort之后,这几个命令你得刻进肌肉记忆
Claude Code内置了一套命令系统,很多人压根不知道。我挑几个你每天都会用到的:
/clear ——切换到完全不同的任务时必用。不清上下文?等着它幻觉吧。想象你刚才在聊如何设计数据库Schema,现在让它写一个前端组件,它脑子里还残留着SQL语句,写出来的东西不伦不类。
/compact ——对话长了token超限时的救星。它会智能压缩,保留核心摘要。我一般每20-30轮对话执行一次。就像聊天记录太多需要清理,但不是直接删,是给你一个精华版。
/rewind ——这玩意儿救过我无数次命。AI改错了代码?Esc+Esc打开检查点列表,可以回滚代码、对话或者两者兼有。注意检查点只追踪文件编辑,不追踪bash命令。所以跑数据库迁移之前,记得手动备份——别问我怎么知道的。
!npm test ——加感叹号直接执行shell命令,命令和输出都在上下文里,Claude能看到结果并自己调整。这比让它自己执行命令快得多,也准得多。
/effort high ——临时调整,遇到复杂逻辑直接切high或max。我建议你把这个命令记熟了,就像开车知道哪里挂挡一样自然。
还有个使用场景我很推荐:每天开始工作前先跑/resume恢复昨天的会话,Claude会接着上次的上下文继续,不用重新交代背景。省下来的时间,够你喝半杯咖啡了。
核心思维转变——你以为是在聊天,其实是在带团队
这是Anthropic官方最佳实践反复强调的,也是我花了两个月才真正领悟的。来,回想一下:大部分人是怎么用的?上来就“帮我实现一个用户登录模块”。结果呢?Claude要么方向跑偏,要么做出来完全不是你想要的。
你以为是跟AI对话,其实是在带一个智能体团队。
正确的姿势,分四步走:
1. 探索 ——进入plan模式(/plan),告诉Claude只读文件,不做改动。让它先理解你的项目结构、现有代码风格、依赖关系。就像新员工入职,先让他翻翻代码库,别上来就改。
2. 规划 ——让Claude输出详细实现计划。用Ctrl+G可以直接在编辑器里改计划。这时候你别急着让它写代码,先把计划过一遍,哪里不满意就说。
3. 实现 ——退出plan模式,让Claude按计划开干。写完记得让它跑测试验证。
4. 提交 ——让Claude用描述性信息commit并开PR。
我踩过的坑:有一次急着赶项目,跳过规划和探索,直接让Claude改写一个核心模块。结果改出来的代码完全不符合我们的架构约定——回滚花了一下午。现在想想还心疼。
什么时候可以跳过规划?如果一句话就能说清楚diff是什么样的,比如“把这个按钮颜色改成蓝色”,直接干就行。
高级玩法——sub-agents、skills和hooks,让你的智能体团队各司其职
项目到了中大规模,单靠一个Agent根本撑不住。这时候你得学会编排。
Sub-agents:在.claude/agents/下创建子智能体配置文件。比如一个专门处理数据库迁移的sub-agent,一个专门做代码审查的。用的时候通过指令召唤它干活,上下文隔离,互不干扰。
我实际项目里用了三个sub-agent:一个负责API层,一个负责数据库操作,一个负责前端组件。各管各的,再也不会出现“改数据库迁移顺带把前端样式也改了”这种离谱事。就像你搭建的专业团队,每个人只干自己擅长的事。
Skills:把常用能力封装成技能文件。比如“代码审查技能”、“测试生成技能”、“性能分析技能”。每次要用不用重新写prompt,直接调就行。一次写好,反复复用。
Hooks:这个特别有用。比如设置pre-commit hook让Claude自动跑lint和测试,不通过不让提交。还有stop hook——Claude觉得任务完成了会跑验证脚本,验证不通过它就继续改。
我配置了一个特殊的hook:第二意见验证。Claude完成代码后,另一个独立的sub-agent用不同模型重新审查一遍,找出潜在问题。这个组合拳下来,代码质量提升非常明显。你想,有个人帮你复核一遍,是不是心里踏实多了?
反馈闭环——别再问“写完了吗”,问它“测试输出了什么”
这是Boris Cherny最强调的一点。他说仅此一项就能把代码质量提升2-3倍。我信,因为实测确实如此。
核心思想很简单:给Claude一个能产生通过/失败结果的验证方式,而不是让它自己说“看起来完成了”。
具体做法:
- 开发功能:告诉Claude“实现后跑npm test”
- UI改动:用Playwright截图对比,列出差异并修复
- API编写:生成后执行curl测试请求
我有个项目配置了四个层级的验证:
1. 同一条消息里让Claude跑测试并迭代
2. 跨会话用/goal设置停止条件
3. Stop hook自动跑验证脚本
4. 验证sub-agent反向审查
层数越多越安全,但成本也越高。根据项目重要性选择。
记住,别问“完成了吗”,问“测试输出了什么”、“最终截图在哪”。 审查证据比自己重跑验证快得多。就像你问下属“活干完没”,不如说“给我看看你的输出结果”。
从Vibe Coding到Agentic Engineering——别让AI编程工具变成高级玩具
说实话,我现在看很多人用Claude Code,还停留在“高级对话机器人”的阶段。你给个prompt让它写,它写了你不满意,再改,反复几轮上下文就炸了。然后你就觉得它不行。
真正用好Claude Code,需要把思维方式切换一下:不是在跟AI聊天,是在编排一个智能体团队。
Command用来触发任务,Agent扮演角色,Skill提供专业能力。这是系统工程化的思路。
社区里那个高星项目claude-code-best-practices把这条路拆得很清楚。它里面有个天气系统编排示例,展示了怎么让Claude Code结合Skills、工具调用、记忆等多种能力完成复杂任务。我看了三遍才完全搞懂,但搞懂之后效率确实上了一个台阶。
进阶建议:如果你现在已经能流畅地用Claude Code写单文件代码了,下一步去研究Orchestration Workflow。Command → Agent → Skill的组合方式,是让Claude Code处理复杂工程任务的关键。
再往后可以看看Power-ups、Devcontainers集成、Computer Use这些高级功能。但我建议一步一步来,先把基础的配置和思维习惯养好,再往深了走。
毕竟,工具再强,也只是放大器。你自身的工程化能力,才是那个插头。
别让Claude Code在你手里变成一个会聊天的玩具——你得先成为那个能驾驭智能体团队的工程师。
读者评论 3