我使用 Claude Code 的七大技巧

最近在公司内部分享上,我分享了我使用 Claude Code 的七大技巧,所以整理成了一篇文章,也分享给推友们。
虽然 Claude Code 的创始人也写了类似的推文,但是本篇文章还是有一些新东西的,尤其是第三小节:自分形。
1. 先 Plan 后代码
在写任何复杂的需求前,我都会启用 Plan 模式,和 AI 沟通需求。
你可以使用 /plan 命令或者使用快捷键 Shift + Tab 打开 Plan 模式。
使用 Plan 模式的最大好处是强制你思考,没错是强制你,不是 AI。
在这个模式下,AI 会不断问你一些细节性的问题,逐渐确认这个需求的边界在哪里,结构是怎么样的,然后它会输出给你一份详细的任务文档。
你可以根据它的任务文档,不断和它沟通改动点和你想要的效果,减少返工的概率。
在处理超大型任务中,你也可以要求把任务持久化为文档,目前 Claude Code 已经有了多会话共享 todo 的功能,但是还没有默认打开。
2. 善用 Claude.md
Claude.md 是 Claude Code 的默认加载文件,当 Claude Code 被启动时,它除了系统指令和 MCP 是一片空白的状态,所以它会加载你项目根目录下的 Claude.md 文件了解你的项目。
我一般会在 Claude.md 中放三条指令:
- 称呼规则:每次回复前必须使用”Boss”作为称呼。
- 决策确认:遇到不确定的代码设计问题时,必须先询问 Boss,不得直接行动。
- 代码兼容性:不能写兼容性代码,除非 Boss 主动要求。
第一条指令是用来确认指令遵循度。
我们都知道,在上下文过多的时候,AI 就开始不遵循指令,此时只要你发现 AI 给你的回复中,没有带上 Boss 这个前缀,你就知道此时的会话上下文已经过载,有必要使用 /new 重新开一个会话了。
第二条指令是用来约束 AI 的自由意志。
AI 总喜欢不问清楚就开干,所以很多时候都需要返工,加上这条指令之后它会经常问你,xx 你想如何设计,并给你几个选项。
第三条指令也是用来约束 AI。
很多情况下,当你对一个任务进行迭代的时候,你明知道它错了,让它改,它总是喜欢在原有的基础上加一个 if 分支帮你改代码,美名其曰:兼容性、系统健壮性。
我不喜欢过多的冗余代码,所以大部分情况我只让它完成我的需求,而不是替我考虑那么多。
一般当上下文窗口使用超过 40% 的时候,AI 的指令遵循度就开始变差,所以要经常查看上下文的窗口还剩多少,一般少于 50% 我就会重开一个窗口。
你可以做两件事:
- 关闭上下文压缩,它占用了总上下文的 22.5%,即使你什么都不干。
- showline 状态栏展示上下文的百分比,你只需要使用 /showline 命令直接告诉它,它就会帮你展示。
还有一点,不用把所有东西都放在 Claude.md 中,做一个懒加载,当需要的时候再去查看。
这就是一个懒加载的例子,它通过三条指令告诉 Claude Code,当你遇到这三个场景的时候去看对应的文件,遵循里面的规范。
3. 使用自分形 & 自描述
Vibe Coding 自分形的概念来自于赵纯想老师,但是我做了一点改进,核心就是利用 Claude Code 的分级加载机制。
Claude Code 在搜索文件时会自动加载文件目录下的 Claude.md,比如它搜索一个 User 关键词,搜到了某个文件夹,那么它会主动加载这个文件夹下面的 Claude.md,这就叫分级加载,也可以说它是懒加载。
所以我们可以在某个业务代码模块下做这些事:
- 每个业务模块文件夹下面都放一个 Claude.md 文件,这个文件记载了这个模块的重要信息:地位(在系统中负责什么)、逻辑(在系统中做什么)、约束(使用模块的约束规则)、还有一个业务域清单,清单中罗列了子文件夹下面的所有子模块和功能。
- 所有源码文件设置三行头部注释,分别是:INPUT(依赖什么)、OUTPUT(提供什么)、POS(在系统中的地位),一定要放在头部,因为 AI 加载文件是从头部开始加载的,这样每次读取某文件都可以先读取到这个业务信息。
做完这些你会发现:
Claude Code 搜索代码更快,因为加入了这些描述性的注释,更容易搜到。
Claude Code 理解代码更准确,因为每次无论搜到什么去加载,都有对应的 Claude.md 给它解释大方向,它不容易跑偏,也更容易从大方向上理解代码的内容。
比如某个文件在第五层级的文件夹中,当 Claude Code 搜到它时,它已经加载了前四个层级的 Claude.md,它对整个模块的了解都无比清晰。
4. 清晰的提示词
以现在的模型能力来讲,提示词写的差一点,它也能明白你在说什么,所以我们写提示词只需要把握好三个原则就可以。
- 清晰准确的描述任务的最终目的是什么,比如有哪些功能点,页面上有什么元素。
- 给它参考的上下文,比如接口数据、接口文档、已经写过的页面。
- 告诉它如何测试,比如前端页面可以让它去使用自带的 Chrome 验证。
5. 利用 MCP 做检索
虽然你安装了 MCP,但是 Claude Code 经常不调用它,自己原地打转。
比如你在写一个页面,某一段代码用法一直出现编译问题或者和设想的效果不一样,它也一直解决不了,就需要主动告诉它调用 Context7 查看线上文档,它去阅读线上文档之后,补全了它的上下文,能更容易写出准确的代码。
但是我们也没有必要安装一堆 MCP,我始终认为:
能本地解决的,别去连云端。
过多的 MCP 会占用你的上下文窗口,你可以使用 /context 命令查看上下文窗口的详细占用情况。
6. Agent 协作
Agent 已经是老生常谈了,但是还有一些小技巧:
- 搜某些可能消耗大量上下文的东西时,让它开 SubAgent 去搜索,SubAgent 是独立的上下文,不会占用当前会话的上下文,搜索完了之后它会直接告诉当前的会话结果,这样你可以避免当前任务还没做太多,就因为搜代码上下文窗口过载了。
- 直接在一条指令中调用多个 Agent,进行对抗式纠错。比如你有 CodeReview Agent、Test Agent,那么你就可以在执行任务之前,告诉 Claude Code 执行成功之后调用 CodeReview Agent 进行代码 Review 并使用 Test Agent 进行测试流程验证。这样在一个任务中,你就调用了三个 Agent 为你进行对抗式纠错,写出的代码准确率更高。
- 并行开发,使用多分支的方式多开两个窗口,让不同的 Agent 同时开发不同的模块,然后再开一个窗口专门处理 Agent 之间的 PR,并进行代码 Review 和测试验证(自定义验证方法或者 TDD 都行)。
7. 善用 Skill
现在 Claude Code 已经把自定义斜杠命令和 Skill 合并,我们需要把经常用到的东西都沉淀成 Skill。
比如我第三节中介绍的自分形,我就专门做了一个 Commit Skill,这个 Skill 会专门检测要提交的代码,然后对这些代码进行注释头的完善和上级文件夹 Claude.md 的完善 + Git 提交。
Skill 具有定制 Prompt、工作流、调度 SubAgent 的能力,多多善用,威力无穷。