不是 AI 聊代码,而是 AI 写教材

打开任意项目
生成一本可从头读到尾的源码教材

面对陌生的开源仓库或企业代码库,你往往不知道该问什么。AiReadCode 不靠对话拼答案:它自动扫描、规划大纲、逐章撰写,最后交给你的是一本带目录、阅读前必读、术语表和可点击源码行号的技术书。

已识别您的系统为 Windows x64 · 支持 Windows / macOS / Linux
12 章 从架构到响应式、编译器
约 15 分钟 确认大纲后自动写完全书
API 约 ¥7 一杯咖啡,换一本定制教材
边写边读 写完一章就能翻,不必苦等
《Vue 3 源码全景剖析》· 第 3 章 · 有经验开发者 / 标准深度
本地阅读器 · 点击 FACT 即对照源码
《Vue 3 源码全景剖析》
12 章 · 标准模式
前言
阅读前必读
01. 整体架构与分层
02. createApp 与启动流程
03. 响应式系统与 Proxy
04. track / trigger 依赖收集
05. Ref、Computed 与调度
术语表
关于项目

第 3 章:响应式系统核心原语与 Proxy 拦截

Vue 3 不再使用 Vue 2 的 Object.defineProperty,而是用 ES6 Proxy 重建响应式基础设施:读取时收集依赖,写入时精确派发更新。

工厂方法把「是否只读、用哪套 traps、缓存在哪张表」交给统一入口: 📎 packages/reactivity/src/reactive.ts:45-53

〔推断〕 用 WeakMap 缓存原始对象与代理,既能避免重复包装,也让对象失去引用后仍可被回收——这是设计动机,不是单行代码能直接证伪的事实。

reactive.ts 已定位书中引用的行
45  export function reactive<T extends object>(target: T) {
46    if (isReadonly(target)) return target as any
47    return createReactiveObject(
48      target,
49      false,
50      mutableHandlers,
51      mutableCollectionHandlers,
52      reactiveMap
53    )
54  }

书里写到的每一处关键论述,都指向真实文件与行号,而不是一段无法核对的摘要。

不需要提问技巧,走完四步就是一本书

用户旅程只有一件事:打开项目,确认大纲,等待生成,开始阅读。下面以 Vue 3 为例。

  1. 01

    打开本地项目

    选择文件夹即可。扫描在本机完成,不调用任何 AI。中小型项目通常三秒内结束,你会看到技术栈、文件数、行数和核心模块。

  2. 02

    选读者,确认大纲

    同一份源码可以写成不同教材:小白、有经验开发者或维护者;快速、标准或深度。AI 先给出 8–15 章大纲,预估章数、耗时和费用,你再决定是否开写。

    小白 有经验开发者 维护者 快速 标准 深度
  3. 03

    四阶段自动成书

    本地扫描 → 架构规划 → 按关键代码切片逐章撰写 → 补前言、阅读前必读和术语表。每写完一章就能读;中断后可从下一章继续,不必推倒重来。

  4. 04

    像读技术书一样读

    左侧目录,中间正文。点 📎 FACT 打开真实源码并高亮行号;〔推断〕与事实分开标注。读完导出 Markdown 或 HTML,书归你所有。

拿到手的不是一段对话,是一本结构完整的书

合并后的 full-book.md 按出版社技术书的顺序编排。你可以按目录通读,也可以只查某一章。

  1. 1
    前言

    说明这是 AI 生成的教材,并给出阅读指引。

  2. 2
    阅读前必读

    补上领域前置。读 NCCL 会先讲 GPU 网格与 AllReduce;读 Vue 3 会先讲 Proxy 与依赖收集直觉。

  3. 3
    8–15 章正文

    从整体架构到核心实现,含图表、FACT 行号、设计权衡与踩坑点。

  4. 4
    术语表

    每个词同时有准确定义和通俗理解,并标注首次出现的章节。

  5. 5
    关于项目

    原仓库简介与推荐阅读顺序,方便回看。

三类读者,同一种困境:不知道从哪读起

开源学习者

想搞懂 Vue 3 响应式、Spring Boot 启动或 Kubernetes 调度,却对着数万行代码无从下手。给你的是一本按认知梯度写的学习指南,不是一堆聊天记录。

团队内训

引入新栈或接手核心库时,靠人写文档、做分享又慢又难更新。一键生成团队专属教材,成员按同一本书对齐理解。

培训讲师

每期课都要跟上最新源码。用生成的书籍当底稿,再按学员画像选择「小白」或「维护者」口径,备课成本会低很多。

别人给你索引、文档或补全,我们给你教材

AiReadCode 不做代码生成,也不做自动补全。它只做一件事:帮你把现有代码读懂。

Cursor / Copilot

帮你写代码

交互是对话和补全。面对陌生大库,你仍然得知道该问什么。产出是碎片回复,不是可以通读的体系。

Understand / Source Insight

给你符号和调用图

传统源码阅读器擅长跳转与索引。逻辑、动机和阅读顺序仍要自己理。门槛高,叙述不完整。

Mintlify / Swimm

给你 API 文档和 wiki

适合查阅接口与团队手册,不是从零到精通的教材。缺少章节递进、阅读前必读和面向学习者的路径。

AiReadCode

直接写成一本技术书

零提问启动。输出有章节、附录、术语和可验证行号。书与源码是同一知识体系的两个视图:在书里点到行,在源码里看出「书中讲过」。

书已经在手,读的时候还能对照源码往下挖

下面仍是同一本《Vue 3 源码全景剖析》。地图帮你先建立全局,正文带你按章前进,FACT 把论述钉回真实代码。

项目地图 · 3 分钟看全局 阅读前必读 / 术语表 按章阅读 + FACT 源码对照与四层解读

《Vue 3 源码全景剖析》· 第 3 章 Markdown · FACT · 〔推断〕

响应式系统核心原语与 Proxy 拦截

响应式模块是 Vue 3 的底座。组件状态之所以能驱动视图,是因为 reactive() 返回的不是普通对象,而是带 traps 的代理。读取属性时调用 track,写入时调用 trigger

源码事实 FACT

📎 packages/reactivity/src/reactive.ts:45-53

点击后在侧栏打开该文件,并高亮 45–53 行。阅读器会校验文件是否存在、行号是否越界。

〔推断〕 选择 Proxy 而不是继续打磨 defineProperty,是为了覆盖新增属性、数组索引和集合类型——这是对设计动机的推断,正文会单独标出,避免和代码事实混在一起。

书中的这一句 正向联动:书 → 源码

「工厂方法把是否只读、用哪套 traps、缓存在哪张表,交给统一入口 createReactiveObject。」

对应标记:📎 reactive.ts:45-53

跳转只负责打开文件并高亮行,不会自动消耗一次 AI 调用。需要深挖时,再对函数触发四层解读。

packages/reactivity/src/reactive.ts 只读对照
45  export function reactive<T extends object>(target: T) {
46    if (isReadonly(target)) return target as any
47    return createReactiveObject(
48      target, false, mutableHandlers,
49      mutableCollectionHandlers, reactiveMap
50    )
51  }
函数 reactive() 点 CodeLens 触发
export function reactive(target) {
  if (isReadonly(target)) return target
  return createReactiveObject(
    target, false,
    mutableHandlers,
    mutableCollectionHandlers,
    reactiveMap
  )
}

解读会带上书中对应段落的口径,避免源码侧和教材各说各话。同一符号再次打开时走本地缓存。

四层结构化解读 与第 3 章叙述对齐
第一层 · 架构定位
响应式模块对外的主入口,连接组件状态与后续的依赖收集、视图更新。
第二层 · 功能职责
输入普通对象,输出可变代理;若目标已是只读,则原样返回,避免重复包装。
第三层 · 代码剖析
只读短路之后,把 mutableHandlers 与 reactiveMap 交给 createReactiveObject,由统一工厂处理缓存与 traps。
第四层 · 设计考量
工厂收口是为了让 reactive / readonly / shallow 共享同一套查重与创建逻辑,减少分叉实现。
阅读前必读 全书最前面

读第 3 章前先建立这三张直觉

  • 依赖收集:谁读过这个值,更新时就通知谁。不必先背源码文件名。
  • Proxy 陷阱:get 时记下读者,set 时叫醒读者。这是响应式的日常类比。
  • 和 Vue 2 的差别:defineProperty 难以覆盖新增属性;Proxy 把拦截放到对象这一层。
术语表 · Proxy 定义 + 通俗理解

Proxy

定义:ES6 元编程接口,为对象设置 get/set 等 traps,在属性访问时插入自定义逻辑。

通俗理解:在原对象外套一层「接待员」。有人来读或改属性,接待员先记账,再放行。

首次出现:第 3 章。调整章节顺序后,这个「第 N 章」会跟着更新。

书可以读,也必须对得上源码

技术阅读不能把推论写成事实。生成与阅读都按这个标准来。

FACT 行号可校验

正文中的 [FACT:path:line] 会由 Rust 后端核对文件是否存在、行号是否越界。点击即打开全文件并高亮对应行。

事实与推断分开

函数签名、分支与返回值标成 FACT;设计动机、性能权衡标成〔推断〕。不把猜测当成代码里写过的话。

阅读前必读

高门槛项目会先补领域背景。NCCL 读者不用一上来就撞上 warp 与 AllReduce;Vue 读者也不用先背完整文件树。

术语两种写法

每个核心术语同时提供准确定义和通俗类比。新手读得下去,熟手查得很快。

两个价格,买的是软件,不是 Token

第一版只做个人许可。模型调用使用你自己的 DeepSeek API Key,费用与下面两档分开。

年费

¥68 / 年

  • 不限本数、不限章节
  • 无水印导出 Markdown / HTML
  • 四层解读与项目地图
  • 最多 3 台设备
  • 到期后手动续费,不自动扣款
登录后开通

登录后开通年费或终身许可,即可生成全书、导出和 AI 解读。 详见 退款政策用户协议

下载 AiReadCode,打开第一个项目

Tauri 2 桌面应用,安装包大约 15MB。扫描与阅读在本地完成,模型调用使用你自己的 API Key。

Windows

Windows 10 / 11(64 位)

版本 v0.6.2 · 约 14.8 MB

macOS

macOS 11.0 及更高版本

版本 v0.6.2 · 约 15.2 MB

Linux

Ubuntu / Debian / Arch / Fedora 等

版本 v0.6.2 · 约 16.5 MB

如需查看更多版本历史与系统架构说明,可前往 常见问题提交使用反馈

源码留在你这边

项目扫描在本地完成。生成书籍时,只有按章节切好的关键代码会发往你配置的模型接口;AiReadCode 不设中间服务器保存你的仓库。API Key 写在本机应用数据目录,前端不持久化。默认跳过 node_modules.gitdist 等目录,也不会去读 .env

先回答这几个最常被问到的问题

不需要。打开项目、选择读者画像和深度、确认大纲即可。程序负责组织章节和撰写正文。你要做的是读书,而不是想下一句该问什么。
以 Vue 3、12 章、标准深度为例,确认大纲后大约 30–45 分钟写完,API 费用大约人民币 6–9 元。可以边生成边阅读。实际耗时随项目规模、深度模式和模型而变,大纲阶段会先给出预估。
那些工具的核心场景是写代码。AiReadCode 的核心场景是读代码:不做补全、不改你的仓库,只生成一本可以系统阅读的教材,并让书中的论述能跳回真实源码行。
本地扫描已覆盖 TypeScript / JavaScript、Vue / Svelte、Rust、Python、Go、Java、C#、Kotlin、Swift、PHP、Ruby、Dart、C/C++ 以及 CUDA。Web 前端、后端服务、移动端和底层通信库(例如 NCCL)都可以用来成书。识别技术栈时会参考 package.json、Cargo.toml、go.mod、*.csproj、pubspec.yaml、Makefile 等常见清单。
再次打开同一项目时,若源码哈希变了,界面会提示 source changed。当前版本可以继续读旧书,或选择重新生成。按变更范围只重写受影响章节,是后续版本的能力,不会在现在的客户端里自动完成。
不包含。¥68/年或 ¥158/终身买的是客户端许可(全书生成、导出、四层解读等)。DeepSeek 的调用费走你在设置里填写的 API Key,由你直接向模型服务商支付。可以用邮箱或手机任一种登录,开通后即可使用生成与导出。支付与退款细则见定价区与退款政策。
可以导出完整 Markdown 和带样式的独立 HTML,放进 Obsidian、浏览器或打印都行。PDF / EPUB 还在后续计划里。导出内容归你使用;若原项目是开源协议,对外分享时请同时尊重原仓库的许可。