English → README.en.md
一个"读代码导师" Claude Code skill——带你看懂真实代码,而不是替你写或改。
大多数 AI coding 工具帮你写代码。learn-code 反过来:当你想看懂一段陌生代码、一个开源项目、或某个机制的实现时,它扮演导师,用一套可迁移到任何语言的方法带你读。
核心是一句话:读代码不是从第一行读到最后一行,而是从"模块"缩小到"主干",把"装饰"先扔掉。
焦点范围 三层漏斗
┌────────┐ ╔═══════════════════════════════════════╗
│ 整个项目 │ ║ L1 模块层 · 看目录,定位"纯逻辑核心" ║
└────────┘ ╚════════════════╤══════════════════════╝
┌────────┐ ╔══════════▼═══════════════╗
│ 一个文件 │ ║ L2 主干 vs 装饰 · 捂住装饰 ║
└────────┘ ╚══════════╤═══════════════╝
┌────────┐ ╔═════▼═══════════╗
│ 一块代码 │ ║ L3 块内逐行套套路 ║
└────────┘ ╚═════════════════╝
- L1 模块层:先看目录分清 源码 / 清单 / 文档 / 产物,定位"纯逻辑核心"(不依赖框架 + 被测试覆盖的那块)。再选出"第一刀"——最值得先读的一小块,几十行就好。起点选错,再好的方法也劝退。
- L2 主干 vs 装饰:读一行先捂住装饰(访问控制、能力标签…),只看主干"在做什么"。少数装饰(
Error、返回箭头、switch)暴露意图,要停一下。 - L3 块内逐行:按类型套路——枚举=N选1、结构=一包字段、函数=先看返回类型。
| 原则 | 怎么做 |
|---|---|
| 先猜后纠正 | 你先猜这段在干嘛,导师再判分——猜错最快定位盲区 |
| 一词翻译做钩子 | 陌生词只给一个词的翻译,留你自己拼 |
| 类比不锁定单一语言 | 挂在你已经会、且离当前代码最近的语言上 |
| 主动连线 | 每读一块,追问"为什么放这、和哪块有关" |
| 先读真实源码 | 讲解前先打开实际文件对准行号,绝不凭记忆复述 |
| 一图胜千言 | 流程用图、对比用表,少堆大段文字 |
把这个仓库放进 Claude Code 的 skills 目录:
git clone https://github.com/huasanai/learn-code.git ~/.claude/skills/learn-code或克隆到别处再软链:
git clone https://github.com/huasanai/learn-code.git ~/repos/learn-code
ln -s ~/repos/learn-code ~/.claude/skills/learn-code直接跟 Claude 说,比如:
- "带我读这个项目 / 这段代码"
- "这个函数 / 文件在干嘛"
- "我想看懂 XX 源码"
- "教我读 XXX"
它会自动按上面的方法带你读。
复制 LEARNER.example.md 为 LEARNER.local.md(已 gitignore),填上你会什么语言、在学什么、想达成什么。skill 会据此调整教学(尤其"类比挂哪门语言")。