
这篇火爆英文区 100 万流量的 Claude code 101 教程文章。
下面是全文翻译:
做了 7 年软件工程师(SWE),曾在亚马逊、迪士尼和 Capital One 任职。我上线的代码服务于数百万用户,构建过绝不允许崩溃的关键系统。
现在,是一家为企业构建 Agent 的初创公司的 CTO,而 Claude Code 是我日常的主力工具。
这是一份新手实战手册,包含了我在使用 Claude 为大公司构建处理复杂工作负载的稳健系统时,所学到的关于它的一切。希望它能对你有所帮助。
先思考,再动手
大多数人认为,使用 Claude Code 或其他 AI 工具时,第一件事就是打字(或开始说话)。这可能是你一开始能犯的最大错误。实际上,你需要做的第一件事是思考。
每一次(10 次里有 10 次),使用规划模式 (Plan Mode) 得到的结果,都明显优于我直接开始对着 Claude Code 一股脑输出的时候。差距甚至不是一点半点。
对于你们中的一些人来说,这可能说起来容易做起来难。你可能没有多年的软件工程经验来支持你独立思考架构。
对此,有两条建议:
这适用于所有事情,包括像总结邮件这样的小任务。
在你要求 Claude 构建功能之前,先考虑架构。在你要求它重构之前,先想好终态应该是什么样。在你要求它调试之前,先思考你对这个问题实际上了解多少。你在规划模式下拥有的信息越多,输出的质量就越好,因为输入的质量提高了。
这个模式是一致的:先思考,后打字,所产生的结果要比“先打字并指望 Claude 自己搞定”好得多。
这引出了我的下一个关于架构的观点。架构,特别是在软件工程中,有点像只给一个人输出结果,而不给过程。
这留下了太大的操作空间,而这正是 AI 生成代码的问题所在。如果你说得很宽泛,比如“给我做一个认证系统”,而不是说“使用现有的 User 模型构建邮箱/密码认证,将 session 存储在 Redis 中并设置 24 小时过期,并添加中间件保护 /api/protected 下的所有路由”,你可以看到其中的区别。
按两次 Shift + Tab,你就会进入规划模式(Plan Mode)。 相信我,这会花费你 5 分钟的时间,但会为你以后节省数小时的调试时间。
CLAUDE .md
CLAUDE .md是一个 Markdown 文件。Markdown 是一种 AI 模型处理得非常好的文本格式,而 Claude 对它的处理尤其出色。
当你启动 Claude Code 会话时,Claude 做的第一件事就是读取你的 CLAUDE .md文件。该文件中的每一条指令都会影响 Claude 处理你项目的方式。它本质上是 Claude 每次对话前的入职材料。
大多数人要么完全忽略它,要么在里面塞满垃圾信息,导致 Claude 表现更差而不是更好。这里有一个阈值,信息太多或太少都会导致模型输出变差。
以下是真正重要的几点:
每当你发现自己需要在同一件事上纠正 Claude 两次时,这就是一个信号:它应该被写进文件里。随着时间的推移,你的 CLAUDE .md 会成为你代码库实际运作方式的活文档。
糟糕的CLAUDE .md看起来像给新员工写的文档。优秀的 CLAUDE .md看起来像是如果你知道明天会失忆,留给自己的笔记。
上下文窗口的局限性
Opus 4.5 有 200,000 token 的上下文窗口。但大多数人没有意识到的是:模型在达到 100% 之前很久就已经开始退化了。(这取决于你是通过 API 使用还是桌面应用)。
大约在 20-40% 的上下文使用率时,输出质量就开始受损,即使不算太严重。如果你经历过 Claude Code 进行压缩(compacting)后仍然给出糟糕的输出,这就是原因。模型在压缩发生之前就已经退化了,而压缩并不能神奇地恢复质量。(注:输入 /compact 进行压缩)。
你发送的每一条消息、Claude 读取的每一个文件、它生成的每一段代码、每一个工具结果——所有这些都在累积。一旦质量开始下降,更多的上下文只会让情况变糟,而不是变好。
以下是一些真正有助于避免糟糕上下文的方法:
有效的思维模型:Claude 是无状态的 (Stateless)。 每次对话都是从零开始,除了你明确给它的东西。据此进行规划。
提示词决定一切
人们花数周时间学习框架和工具。却花零时间学习如何与那个实际生成代码的东西进行沟通。
提示工程(Prompting)不是什么玄学。它可能是最基本的沟通形式。像任何沟通一样,清晰总比含糊能带来更好的结果。每一次都是如此。
真正有用的做法:
记住:输出就是一切,但它只源于输入。 如果你的输出很烂,那是你的输入很烂。这没法绕过去。
糟糕的输入 == 糟糕的输出
当得到糟糕的结果时,人们会责怪模型。“Claude 不够聪明”或者“我需要更好的模型”。
认清现实:是你不行(Reality check: you suck)。 如果你用像 Opus 4.5 这样的好模型却得到糟糕的输出,这意味着你的输入和提示词很烂。句号。
模型很重要。
实际上非常重要。但模型质量在目前只是入场券。瓶颈几乎总是在人这边:你如何构建提示词,如何提供上下文,如何清晰地传达你真正想要的东西。
如果你持续得到糟糕的结果,解决办法不是换模型。
解决办法是在以下方面做得更好:
话虽如此,模型之间确实存在差异:
一个有效的工作流:使用 Opus 进行规划和架构决策,然后切换到 Sonnet(在 Claude Code 中按 Shift+Tab)进行实施。 这取决于你的任务,有时你也可以用 Opus 4.5 进行实施。不过如果你是通过 API 使用量计费的话,这样做之前先考虑去卖个肾。你的 CLAUDE.md确保两个模型在相同的约束下运行,所以交接是干净的。
MCP、工具和配置
Claude 有着多到离谱的功能。MCP 服务器、Hooks(钩子)、自定义斜杠命令、Settings.json 配置、Skills、插件。
你不需要所有这些。但你应该确实去尝试和实验,因为如果你不实验,你可能正在浪费时间或金钱。我向你保证,Claude 至少有一个你不知道的新功能正在发布,如果你关注 Claude Code 的创始人 Boris,你就能学到。
如果你有 Pro Max 计划(我付 200 美元/月),为什么不尝试 Claude 提供的一切呢?看看什么有用,什么没用。反正你都付钱了。
还有一件事:不要因为第一次尝试不成功就放弃。这些模型基本上每周都在进步。一个月前不行东西现在可能行了。做一个早期采用者意味着保持好奇心并重新测试事物。
当 Claude 卡住时
有时 Claude 只是在死循环。它尝试同样的事情,失败,再试,失败,一直持续。或者它自信地实施了一些完全错误的东西,你花二十分钟试图解释为什么。
当这种情况发生时,本能是继续推进。更多指令。更多纠正。更多上下文。但现实是,更好的做法是完全改变方法。
这里的元技能 (meta-skill) 是尽早识别你处于死循环中。如果你已经把同一件事解释了三遍 Claude 还是不懂,更多的解释也不会有帮助。改变一些东西。
构建系统
从 Claude 获得最大价值的人不仅仅是用它做一次性任务。他们在构建系统,而 Claude 是其中的一个组件。但 Claude Code 远不止于此。它有一个 -p 标志用于无头模式 (headless mode)。它运行你的提示词并输出结果,而无需进入交互界面。这意味着你可以脚本化它。将输出通过管道传输给其他工具。与 bash 命令串联。集成到自动化工作流中。
企业正在利用这一点进行自动 PR 审查、自动支持工单回复、自动日志记录和文档更新。所有这些都被记录下来,可审计,并根据什么有效、什么无效随着时间推移而改进。
飞轮效应: Claude 犯了一个错,你查看日志,你改进 CLAUDE.md 或工具,Claude 下次会做得更好。这会复利增长。我现在正在让 Claude 能够改进它自己的 CLAUDE.md 文件。经过几个月的迭代,以这种方式构建的系统比它们刚推出时要好得多——同样的模型,只是配置得更好。
如果你只在交互模式下使用 Claude,你就把价值留在了桌子上(浪费了价值)。思考一下在你的工作流中,哪里可以让 Claude 在你不盯着的情况下运行。
TLDR (太长不看版)
如果你正在用 Claude 构建东西——无论是你自己的项目还是生产系统——这些就是决定你是与工具对抗还是顺势而为的关键。