Skip to main content
发布于 2026-04-20 · 更新于 2026-04-20
很多人学开源项目的套路是这样的:git clone,然后让 AI 把整个仓库扫一遍,生成一份”架构文档 + 模块关系图 + 流程图”。产出确实漂亮——模块框清晰、箭头整齐、一眼看过去像什么都讲明白了。 但读完合上电脑,下一秒连入口文件在哪都说不上来。想改一行代码也不知道该从哪下手。很多人开始怀疑是自己思维方式有问题。 不是思维问题,是方法错了。AI 生成的架构文档不是辅助,是理解的替代品。这篇写一套能真正把代码装进脑子的 4 步法。

为什么 AI 文档让你读不懂代码流程

一份 AI 生成的架构文档和你真正需要的东西,中间有四层错位: 更本质的问题在于阅读姿势。读小说是线性的,一页翻过一页;读代码不是——代码需要反复跳转、交叉引用、回溯。调用栈深到第五层,你还得记住第一层的上下文。 AI 把这个立体的东西拍平成一份可以从上到下读一遍的文档,读的时候确实顺——但顺,就意味着你的大脑没有亲手建立索引。没有”这个函数在那个位置”的空间感,没有”上次追这条线卡在 A 函数”的肌肉记忆。合上文档一小时,结构图上的箭头就从记忆里溶解了。 这是 ChatGPT 时代一个普遍的陷阱:“生成感”让你误以为自己在学习。生成是输出,学习是内化,两件事。看着精美的图”哦,懂了”的那个瞬间,你获得的是理解的幻觉,不是理解本身。

4 步主动学习法

步骤 1 · 先当用户,再当程序员

跑起来 → 用 10 分钟 → 再读代码。
打开浏览器,当一个真实用户用 10 分钟:登录一次、搜索一次、提交一次、切换一次设置。 所有后续阅读都需要”具体使用场景”做锚点。没跑过产品就开始读代码,就像没看过电影就读剧本——所有角色名都对不上脸,读到第三幕你还在翻前面查”这人是谁”。 跑不起来本身也是重要信号:真实项目的启动门槛 = 它复杂度的缩影。需要配几个环境变量、起几个服务、跑几个迁移脚本,这些摩擦本身就在告诉你项目的依赖结构。

步骤 2 · 从入口点追一条具体流程

不要从架构总览开始读。总览永远太抽象,没有钩子挂不住任何记忆。 先找真正的入口,常见候选: 找到入口后,选一条你刚才用产品时做过的动作(登录、搜索、提交表单任选一个),从点击开始追整条链路:
每一跳都打开文件亲眼看一次。看完一条完整链路,整个项目 70% 的基础结构就摸到了——一个真实的 feature 横切所有层,UI、路由、业务、数据、状态全被串起来。这是任何架构图替代不了的。

步骤 3 · 读测试,比读文档有效

找测试文件:
测试是项目里最精准的功能说明书,而且它是可执行的、带真实数据的:
  • describe / it 名称 = 这个功能在做什么,一句话说明
  • 测试输入输出 = 真实数据长什么样(比类型声明直观 10 倍)
  • mock 和 fixture = 这个模块依赖谁,铁证
  • 修改一个测试的输入,重新跑 = 主动理解
文档会过期,注释会骗人,但测试不会——测试跑不过 CI 就红,它和代码的真实行为永远同步。 反模式预警:如果项目测试覆盖率很低,或者测试里满是 expect(true).toBe(true) 这种摆设,说明项目本身质量一般,深学的性价比低。换一个学。

步骤 4 · 用 debugger 看真实执行

这一步是最多人跳过、也最能拉开差距的一步。
跑一次 debug 的信息量约等于读 100 行代码。变量面板里的实际值、调用栈、闭包上下文,这些东西单看源码要脑补半天,断点一打全在眼前。 很多人(包括读到这里的一部分人)写了三五年前端,还在靠 console.log 调试——这是巨大的工具浪费。debugger 不只是调试工具,它是最好的代码阅读工具

AI 的正确用法(对照表)

AI 不是不能用——是你要换个用法。 原则一句话:带着具体代码 + 具体疑问去问 AI,不要对着空气侃。 空问题得到空答案。你问”这个项目怎么设计的”,AI 只能给你一份看起来很懂实际什么也没传递的综述。你问”这段代码第 47 行为什么用 useLayoutEffect 而不是 useEffect”,AI 会给你一个你可以验证、可以复用、可以记住的答案。

配合工具

两个值得常备的 MCP 工具:
  • DeepWiki MCP:针对热门 repo 的社区级沉淀文档。和本地 AI 临时生成不是一回事——DeepWiki 的内容是多人校验过的,用 ask_questionread_wiki_contents 查,可靠性远高于”clone 下来现生成一份”
  • Context7 MCP:库级真实文档,比读源码找 API 快,遇到不熟悉的库 API 直接查这里
两者定位都是,不是替你读。查完还是要回到你自己追的那条流程上去。

画图纪律:一定要自己画

读完一条流程、追完一个模块后,关掉所有 AI,打开白板、纸、draw.io 或 Excalidraw,自己画。 画的过程有三个回合:
  1. 理解:我到底看懂了吗?
  2. 抽象:哪些是主干,哪些是细节?
  3. 表达:怎么让图对得上我脑子里的结构?
  • 画得乱七八糟 = 还没真懂,回去继续追
  • 画得出来 = 真懂了
AI 画的图你”看懂了”是幻觉,自己能画出来才是真懂。这个训练不能外包——外包了就等于用别人的肌肉记忆替代自己的,健身房请人代练不会长肌肉。

反常识总结

  1. 第一个动作是 pnpm dev,不是”帮我生成文档”
  2. 追一条具体流程,比读十份架构总览有用
  3. 测试文件的可信度 > docs/ 目录 > 源码注释 > AI 生成的文档
  4. debugger 单步执行一次,顶 console.log 十次
  5. AI 是问答伙伴,不是教科书作者,更不是你
  6. 图要自己画,画得丑也自己画