核心思路
不要一上来硬啃源码。先建立全局认知 → 再下沉到模块 → 最后抠具体函数/调用链,配合 AI 当"一对一导师"无限追问。
两步法拆解流程
宏观概览:DeepWiki 一键出说明书
把 GitHub 地址的 github.com换成deepwiki.com,例如github.com/WispSnow/TinyFarm → deepwiki.com/WispSnow/TinyFarm自动生成:项目定位、目录结构、模块关系、核心数据流、关键文件行号引用。 英文看不懂就装沉浸式翻译插件 https://www.immersivetranslate.net/ (pro版需要付费)做中英对照。 没被索引的仓库填邮箱申请,约 10 分钟跑完。
微观深入:Claude Code 当私教(其他工具也可行)
本地 git clone 项目,在目录里启动 Claude Code(终端形态),让它干这些事:
这里老师提供了一个学习教程的范例:模块化编程与幽灵逃生 | C++游戏开发教程 https://cppgamedev.top/courses/modular-ghost-escape
这是一个开源游戏仓库,我非常想深入学习,请给我提供学习建议。
分析当前项目的代码仓库结构,绘制一张清晰的架构图。要求用 Mermaid 语法输出,让完全不懂代码的人也能一眼看明白各模块的关系。
视频里明确说:每次进项目都口头铺垫「你现在是 C++ 老师…」既费 token 又容易漏,正确做法是把角色设定固化到项目根目录的CLAUDE.md,Claude Code 启动自动读。他给的范例大意是这样(不是逐字字幕,但措辞贴近视频口述):
#CLAUDE.md
你制作的所有教程文件,都保存到Tutorial文件夹中
视频顺带提了一句关键点:CLAUDE.md 只放「事实 + 角色约束」,别塞流程性 SOP,否则长对话里指令遵循度会掉。
视频示范顺序是:clone 完先不急着问 main() 干嘛,而是先发一条「造课」指令,把仓库交给它排课。他口述的 prompt 样例(可直接抄):
你已经读了这个仓库。请基于真实存在的文件和目录,给我生成一份循序渐进的学习大纲,假设我是会一点 C++ 但没碰过游戏引擎的新手。要求:
按 6~15 节课排,每节课只解决一个核心疑问 每节课列出「要读的文件(带路径)」和「要搞懂的概念」 第 1 课必须是「程序从哪里启动、主循环怎么转」 不要编造文件,读不到的就明说
视频里强调:这步的价值是把「无限源码」切成「有顺序的课时」,你拿到大纲后再一节一节往下啃,比随机跳转强十倍。
开始写第一课的详细内容 @CLAUDE.md
我不太理解 setUpInitialState 这个函数究竟是怎么工作的,请详细说明
这是视频里最实在的一段。他特意对比了「烂问法」和「好问法」:
❌ 烂问法(视频原话大意:「这样问 Claude 会瞎编路径或者泛泛而谈」)
「帮我讲讲渲染系统怎么实现的」 「这个 ECS 架构是什么意思」
✅ 好问法(视频里他当场打的,带锚点):
src/render/Renderer.cpp的Renderer::DrawFrame()里,第 88 行那个glDrawElements调用前面为什么先bindVertexArray再useProgram?这两步换顺序会怎样?结合Mesh::UploadToGPU()讲。我在
src/ecs/SystemManager.cpp看到registry.view<Transform, Sprite>(),EnTT 的view和get区别是什么?为什么主循环里用view而不是手写 for 遍历所有 entity?
视频总结的追问纪律(原话要点):
永远给文件:行号,不给路径就让 Claude 先「列出相关文件让我确认」再问 一次只问一个机制,别把「渲染+音频+存档」揉成一大坨 让它对比「这样写 vs 换种写法」,比单纯「解释这段代码」更能逼出设计意图 不懂就继续嵌套问,但每轮都把上文结论贴回去(或靠 /compact保留摘要)
把上面四块拼起来,就是视频「Claude Code 当私教」的完整骨架:
CLAUDE.md 定角色 → 第一条指令产出学习大纲 → 按大纲每节用「文件:行号 + 单一机制 + 对比式」追问 → 切模块前 /compact。不是把 Claude 当搜索引擎,而是当成一个「读得完整个仓库、记得住你进度、讲得清行号」的助教。
实战操作
刚好那DeepSeek刚开源的项目实战下(分别使用trae、codebuddy):https://github.com/deepseek-ai/deepseek-harness
生成架构图
codebuddy会提醒我保存,两者生成结果差别很大,后续慢慢看,看谁输出的好。
分析当前项目的代码仓库结构,绘制一张清晰的架构图。要求用 Mermaid 语法输出,让完全不懂代码的人也能一眼看明白各模块的关系。
生成教程
你已经读了这个仓库。请基于真实存在的文件和目录,给我生成一份循序渐进的学习大纲,假设我是编程老手,不要基础知识点,简单明了即可。要求:
按 6~15 节课排,每节课只解决一个核心疑问 每节课列出「要读的文件(带路径)」和「要搞懂的概念」 第 1 课必须是「程序从哪里启动、主循环怎么转」 不要编造文件,读不到的就明说
夜雨聆风