环境搭建与代码库理解
本节信息
讲师 Elie Schoppik(Anthropic)· 时长 14:00 · ▶ 原视频
我们要做的第一个例子,是一个端到端的 RAG 聊天机器人。先用 Claude Code 来摸清这个代码库。
在让 Claude Code 帮我们狂写代码之前,先聊聊怎么用这个工具,快速搞懂一个更大的代码库。
先看看这个应用本身
这里有个应用,我可以就 DeepLearning.AI 的课程资料和 Claude 聊天。我们试着问一门课的大纲,比如:「MCP: Build Rich-Context AI Apps with Anthropic 这门课的大纲是什么?」可以看到,它返回了相当详细的内容,列出了每节课和对应的描述。
带着这个印象,我们来看看怎么快速搞懂支撑这个应用的底层代码。
用 Claude Code「聊」懂代码库
回到 VS Code,我这儿开着终端,输入 claude 回车,就进了 Claude Code。
进来后,我就能开始「和我的代码库对话」了。我先问一个高层次的问题,让它给我一个代码库的总览。
接下来你会看到 Claude Code 做的事:它会以 agent 的方式在代码库里自主搜索,找出几个最重要的文件,再告诉我这个应用里到底在发生什么。它不会一个文件一个文件地翻,而是自主地搜索、定位出最相关的那些。
下面这段回放,就还原了「让它追踪一次用户查询从前端到后端」的过程:
点「下一步」开始这段会话回放 ↓
我们常说:Claude Code 是个很棒的、能和你并肩干活的工程师,但它更是个一流的「讲解员」。所以当你在熟悉新代码库、新数据集时,先把 Claude Code 当成讲解工具——这样等你真要它写代码时,你心里对整件事的来龙去脉会清楚得多。
这种「快速搞懂一个代码库」的能力,在你对底层技术或语言不熟的时候尤其值钱。你不用挨个进文件夹去琢磨发生了什么,而是可以问更具体的问题,甚至让它给你画图、做可视化。
让它画张图、问它怎么跑起来
假设我是那种「看图最容易懂」的人。那就让 Claude 画一张图,把这个流程画出来——它能画 ASCII 字符画,也能用 D3.js / recharts 画网页可视化。
带着这个思路,我们再问个特别简单的问题:「我怎么运行这个应用?」我能看到 API 文档、Web 界面,以及我需要的环境变量——齐活,可以开干了。
关键一步:/init 与 CLAUDE.md
当你开始在 Claude Code 里处理一个应用时,我们建议你做的头几件事之一,就是运行 /init 命令。在 Claude Code 里敲下斜杠,你会看到一长串可用的内置命令。/init 能帮我初始化一个带着代码库文档的 CLAUDE.md 文件。
CLAUDE.md 对于给 Claude Code 引入「记忆」是至关重要的——它让 Claude 知道在你的代码库里怎么干活最合适。这个文件很适合用来指定你希望东西「怎么跑」:比如怎么跑测试、怎么做代码检查(linting),以及任何你希望 Claude 每次处理这个项目时都长期记住的事情。
/init 不用你从零写起——它会分析代码库,从高层次搞清楚「每次处理这个应用时它都该知道些什么」。
三种 CLAUDE.md
CLAUDE.md 其实分三层,写进哪一层,决定了它影响谁、要不要进 git。点下面三张卡片看区别:
同样是「记忆」,写进哪一层,决定了它影响谁、要不要进 git。点下面三张卡片看区别:
CLAUDE.md✓ 进 git · 团队共享💡 `/init` 生成的就是这种。适合放「所有协作者都该遵守」的规则。
小提示:
CLAUDE.local.md现在仍然可用,但官方更推荐的做法是——在项目的CLAUDE.md里用@路径导入一个被 git 忽略的文件,效果一样、也更清晰。
在 VS Code 里配合 Claude Code 用,有个很爽的地方:文件一有改动,我就能在编辑器里直观看到。而且每次 Claude Code 要用某个工具,它都会向我请求权限。这种「人在回路」(human in the loop)在你刚上手时特别重要。
/ide 与编辑记忆
在 VS Code 里用 Claude Code,我能指定「我正在哪个文件里」,甚至能拿到具体某些行的信息。要打通这个,我用 /ide 命令——可以看到,我已经和 Visual Studio Code 连上了。连上之后,我一打开某个文件,它就会被标记出来。
想往 CLAUDE.md 里加规则,有两个顺手的办法:
- 直接用自然语言让 Claude 改:比如说一句「把『永远用 UV 跑服务器,别用 pip』这条加进项目的
CLAUDE.md」,Claude 就会帮你写进去。(UV 是 Python 生态里的一个包管理器。) - 用
/memory命令:它会列出当前生效的所有记忆文件(项目级 / 本地级 / 用户级),你选一个,就在编辑器里打开来改。
与课程录像的差异
课程录制时,讲师用的是 # 内容 这个快捷方式来快速写记忆。该快捷方式在新版 Claude Code(v2.0.70 起)已被移除,上面两种是当前的等价做法。
几个常用命令:/help、/clear、/compact、/memory、Esc
/help:给你所有命令的简短说明和摘要。刚熟悉 Claude Code 时很好用。/clear:清空对话历史、从头开始(但保留项目记忆)。切换方向、做新功能时特别有用。/compact:清掉历史、但留下一份「之前做了什么」的摘要,让你能在更小的上下文里继续推进。/memory:列出并打开当前生效的记忆文件来编辑(注意:它只是「打开文件」,在它后面直接写规则是没用的)。Esc键:从当前正在跑的命令里跳出来。拿不到你要的东西,随时打断它再继续往下走。
收尾:让 Claude Code 帮你 commit
下课前,再说一个很有用的点:Claude Code 会用 Git。我对应用做了点小改动,想 add 并 commit——我不自己手敲 Git 命令、绞尽脑汁写提交信息,而是让 Claude Code 来干,它写出来的提交信息非常清楚、有描述性。
这一点在两个时候极其有用:之后让 Claude Code 帮我们追溯 git 历史改动时,以及把代码推到 GitHub、别人来看我们改了什么时。
下一节,我们就开始用 Claude Code 帮我们大量地写东西了。