CHAPTER 15 · 附录

术语表与学习计划

这一章是工具箱:一份可以随时查阅的术语对照表,一份把全书串起来的 8 周计划,以及一份检验自己是否真正掌握的能力清单。

随时查阅

术语对照表

按领域分组。“章节”列指向首次详细解释该术语的地方。和 Agent 沟通时,中英文术语都可以使用——模型对两者都理解,但英文术语在搜索文档和报错信息时更有用。

语言与运行时

中文English一句话解释章节
运行时Runtime执行 JS 并提供宿主 API 的环境:浏览器、Node、Bun、Deno、workerd01
类型擦除Type erasureTS 类型只在编译期存在,运行时完全消失01 / 04
类型剥离Type stripping只删除类型标注、不做类型检查的转译方式(Node 内置)01
打包器Bundler合并、摇树、分割、压缩代码的工具:Vite / Rolldown、Turbopack01
摇树Tree shaking删除未被使用的导出代码01
锁文件Lockfile记录依赖确切版本的文件,保证可复现安装01 / 02
事件循环Event loop同步代码 → 清空微任务 → 取一个宏任务,循环往复03
微任务 / 宏任务Microtask / Task (macrotask)Promise 回调 / 计时器、I/O、事件回调03
漂浮的 PromiseFloating promise没有被 await 或处理的 Promise,错误会被吞掉03
闭包Closure函数记住其创建时作用域中的变量03
不可变更新Immutable update创建新对象 / 数组而不是修改原值03 / 06
ES 模块 / CommonJSESM / CJS现代的 import/export / 旧的 require 模块系统03

类型系统

中文English一句话解释章节
结构化类型Structural typing按形状判断兼容性,而不是按声明关系04
联合类型Union typeA | B:值可能是其中任意一种04
类型收窄Narrowing编译器根据判断语句在不同位置给出更精确的类型04
判别联合Discriminated union用共同的字面量字段区分多种形状04
穷尽检查Exhaustiveness check用 never 确保所有分支都被处理04
泛型Generics对待定类型保持通用并保留类型信息04
类型断言Type assertion (as)告诉编译器“相信我”,不做任何检查04
运行时校验Runtime validation用 Zod 等在边界检查真实数据04
单一事实来源Single source of truth只定义一次,其余全部推导04 / 08

Web 与前端

中文English一句话解释章节
同源策略 / 跨源资源共享Same-origin policy / CORS浏览器限制跨源读取;服务器通过响应头声明豁免05
预检请求Preflight request跨源非简单请求前的 OPTIONS 确认05
跨站脚本 / 跨站请求伪造XSS / CSRF注入脚本执行 / 借用户 Cookie 发起请求05
文档对象模型DOM浏览器中表示页面的对象树05
可访问性Accessibility (a11y)让键盘、屏幕阅读器等方式都能使用界面05
响应式断点Responsive breakpoint按屏幕宽度切换布局的阈值05
组件 / 属性 / 状态Component / Props / State返回界面的函数 / 父传子的只读参数 / React 保管的数据06
协调 / 比对Reconciliation比较新旧元素树,计算最小的 DOM 变更06
提升状态Lifting state up把共享状态移到最近的共同父组件06
派生状态Derived state能从其他数据算出的值,不应单独存储06
副作用 / 清理函数Effect / Cleanup渲染后与外部系统同步 / 撤销上一次同步06
受控 / 非受控输入Controlled / Uncontrolled input值由 state 驱动 / 由浏览器保存06
乐观更新Optimistic update服务器确认前先显示预期结果,失败再回滚06
服务器状态Server state远端数据的本地缓存(TanStack Query 管理的对象)06
防抖 / 节流Debounce / Throttle停止触发一段时间后才执行 / 限制执行频率06

渲染与全栈

中文English一句话解释章节
客户端 / 服务端渲染CSR / SSRHTML 在浏览器 / 服务器生成07
静态生成 / 增量静态再生SSG / ISR构建时生成 / 生成后缓存并定期更新07
流式渲染Streaming SSR先发外壳,慢的部分随后流入07
水合Hydration客户端复用服务器 HTML 并绑定事件07
服务器组件 / 客户端组件Server / Client Components (RSC)只在服务器存在 / 代码发送到浏览器07
服务器函数Server Function / Server Action可从客户端调用、在服务器执行的函数(本质是网络端点)07
请求瀑布Request waterfall本可并行的请求被串行执行03 / 07
元框架Meta-framework在 UI 库之上提供路由、渲染、数据加载的全栈框架01 / 07
端到端类型安全End-to-end type safety类型从数据库一路推导到界面08
迁移Migration对数据库结构的版本化变更08
认证 / 授权Authentication / Authorization你是谁 / 你能做什么08
不安全的直接对象引用IDOR只校验登录,未校验资源归属08
幂等Idempotency重复执行不产生重复效果08
指数退避Exponential backoff失败后等待时间成倍增长再重试08
死信队列Dead-letter queue (DLQ)多次失败的消息的隔离区14

部署与工程化

中文English一句话解释章节
无服务器Serverless按需启动实例、按用量计费、无需管理服务器09
边缘计算Edge computing在离用户最近的节点执行代码09
冷启动Cold start新实例首次处理请求时的启动延迟09
隔离沙箱V8 isolate比容器更轻量的执行隔离单元(Cloudflare Workers)09
绑定Binding通过 env 注入给 Worker 的资源09
预览部署Preview deployment每个 PR 自动生成的独立环境09
完成定义Definition of Done任务被视为完成需满足的检查清单10
端到端测试E2E test用真实浏览器模拟用户操作的测试10
持续集成CI每次提交自动运行检查10
可观测性Observability日志、指标、追踪,用于了解线上系统状态10

AI 与 Agent

中文English一句话解释章节
词元Token模型处理和计费的文本单位11
上下文窗口Context window单次请求可容纳的 token 上限11
首 token 时间Time to first token (TTFT)从请求到第一个 token 到达的时间11
结构化输出Structured output按 schema 约束模型返回 JSON11
工具调用Tool calling / Function calling模型请求你的代码执行某个函数11
嵌入向量Embedding把文本映射为向量,语义相近则距离近11
检索增强生成RAG先检索相关资料,再让模型基于它们生成11
提示缓存Prompt caching重复的请求前缀以更低成本和延迟处理11
评估Evals用样本集和评分规则衡量 AI 功能质量11
提示注入Prompt injection数据中夹带指令以劫持模型行为11
智能体Agent模型在循环中使用工具直到完成目标12
挽具 / 外围框架Harness模型之外的一切:指令、工具、上下文管理、权限、反馈12
上下文工程Context engineering决定每一轮上下文中放什么12
压缩Compaction把早期上下文总结为摘要以腾出空间12
子智能体Subagent拥有独立上下文的子任务执行者12
模型上下文协议MCP把工具和数据接入 Agent 宿主的开放协议12
技能 / 钩子Skills / Hooks按需加载的专业说明 / 生命周期中确定执行的脚本12
人在回路Human-in-the-loop关键步骤需要人确认12
规格 / 验收标准Spec / Acceptance criteria描述要做什么以及如何判断完成13
纵向切片Vertical slice端到端可运行的最小功能增量13

8 周学习计划

按每周 8~10 小时设计。每周都有一个 LinkNote 里程碑——交付一个能跑的东西比读完所有章节更重要。

周阅读动手(LinkNote 里程碑)本周检验
100、01、02装好环境;跑通 hello.ts;创建 Vite + React 项目;写第一版 AGENTS.md能解释 tsc 与 node 运行 .ts 的区别
203、04写一个批量抓取网页标题的脚本:并发上限、超时、allSettled;用 Zod 定义 Bookmark 判别联合能预测事件循环输出顺序;代码中没有 any
305、06用假数据做出列表页:卡片、标签筛选(URL 状态)、空状态、添加表单能说出每一份状态住在哪里、为什么
407、08迁移到 Next.js 或 TanStack Start;接入数据库(Drizzle)和登录;实现增删查能画出一次请求经过的层与类型来源;删除接口防 IDOR
509、10部署上线(任选一个平台);配置 CI;补齐单元测试和一个 E2E 测试有一个公网可访问的地址;PR 上 CI 自动运行
611异步摘要生成:队列 + 结构化输出 + 状态更新;流式“问我的收藏”(只读工具)建了 20 条样本的评估集;知道单次摘要的成本
712、13把“问我的收藏”升级为 Agent;为项目写 Skill 或 Hook;用六要素模板完成一个新功能一个功能从规格到合并,一次完成
814,复习为 LinkNote 写一份设计文档(含估算);练习 5 道面试题(对着录音回答)能在 45 分钟内讲完 LinkNote 的系统设计
计划的正确用法

这是参考节奏,不是必须严格遵守的课表。如果你已经有明确的项目要做,就用自己的项目替代 LinkNote,按同样的顺序推进。最重要的原则只有一条:每周都交付一个能运行的东西,不要连续几周只读不做,也不要花一周时间“搭建完美的学习环境”。

能力自查清单

勾选你能不看资料、用自己的话做到的项目(勾选状态保存在你的浏览器本地)。

原理层(必须)

实践层

官方资源索引

版本变化快,遇到具体 API 时以官方文档为准。也可以把这些链接直接交给 Agent,让它先读文档再写代码。

领域资源
JavaScript / Web 平台MDN Web Docs
TypeScripttypescriptlang.org/docs(Handbook)
Node.jsnodejs.org/docs
Reactreact.dev/learn(尤其是 “You Might Not Need an Effect”)
Next.jsnextjs.org/docs
TanStack(Start / Router / Query)tanstack.com
Vitevite.dev
Tailwind CSS / shadcn/uitailwindcss.com/docs · ui.shadcn.com
Zodzod.dev
Drizzle ORMorm.drizzle.team
Honohono.dev
Better Authbetter-auth.com
Vercelvercel.com/docs
Cloudflare Workersdevelopers.cloudflare.com/workers · Agents SDK
Vitest / Playwrightvitest.dev · playwright.dev
AI SDKai-sdk.dev
Claude APIplatform.claude.com/docs
Claude Codecode.claude.com/docs
Model Context Protocolmodelcontextprotocol.io
pi coding agentgithub.com/badlogic/pi-mono

最后

回到第 00 章的类比:从汇编到面向对象,工程师写的代码变少了,但对“系统如何运作”的理解要求并没有降低,反而扩展到了更高的层次。今天的转换也一样。Agent 会越来越强,但知道要什么、说得清楚、判断得了对错,这三件事始终是你的。

祝你构建出自己想要的东西。