Skip to content

huasanai/learn-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learn-code

learn-code — read code, module → trunk

type license method

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)

把这个仓库放进 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.mdLEARNER.local.md(已 gitignore),填上你会什么语言、在学什么、想达成什么。skill 会据此调整教学(尤其"类比挂哪门语言")。

License

MIT

About

A read-code tutor Claude Code skill: understand real code via a module→trunk method and guess-first tutoring

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors