CHAPTER 15 · APPENDIX
Glossary & Study Plan
This chapter is a toolbox: a glossary to look things up any time, an 8-week plan that ties the guide together, and a checklist to test whether you've really got it.
Glossary
Grouped by area. The "Ch." column points to where each term is first explained in detail. The Chinese column is there if you work with Chinese-speaking teammates or read the Chinese edition.
Language and runtime
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| Runtime | An environment that executes JS and provides host APIs: browsers, Node, Bun, Deno, workerd | 01 | 运行时 |
| Type erasure | TS types exist only at compile time and vanish at runtime | 01 / 04 | 类型擦除 |
| Type stripping | Transpiling by deleting annotations without type-checking (built into Node) | 01 | 类型剥离 |
| Bundler | Merges, tree-shakes, splits and minifies code: Vite / Rolldown, Turbopack | 01 | 打包器 |
| Tree shaking | Removing exported code that's never used | 01 | 摇树 |
| Lockfile | Records exact dependency versions for reproducible installs | 01 / 02 | 锁文件 |
| Event loop | Sync code → drain microtasks → take one task, repeat | 03 | 事件循环 |
| Microtask / task | Promise callbacks / timer, I/O and event callbacks | 03 | 微任务 / 宏任务 |
| Floating promise | A promise never awaited or handled; its errors get swallowed | 03 | 漂浮的 Promise |
| Closure | A function remembering variables from the scope it was created in | 03 | 闭包 |
| Immutable update | Creating new objects / arrays instead of mutating | 03 / 06 | 不可变更新 |
| ESM / CJS | Modern import/export modules / the old require system | 03 | ES 模块 / CommonJS |
Type system
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| Structural typing | Compatibility decided by shape, not declared relationships | 04 | 结构化类型 |
| Union type | A | B: a value may be either | 04 | 联合类型 |
| Narrowing | The compiler gives more precise types at different points based on checks | 04 | 类型收窄 |
| Discriminated union | Several shapes told apart by a shared literal field | 04 | 判别联合 |
| Exhaustiveness check | Using never to ensure every branch is handled | 04 | 穷尽检查 |
| Generics | Staying general over a type-to-be-decided while keeping type info | 04 | 泛型 |
Type assertion (as) | Telling the compiler "trust me", with no check at all | 04 | 类型断言 |
| Runtime validation | Checking real data at boundaries with Zod and similar | 04 | 运行时校验 |
| Single source of truth | Define once, derive everything else | 04 / 08 | 单一事实来源 |
Web and frontend
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| Same-origin policy / CORS | Browsers restrict cross-origin reads; servers opt out via response headers | 05 | 同源策略 / 跨源资源共享 |
| Preflight request | The OPTIONS check before a non-simple cross-origin request | 05 | 预检请求 |
| XSS / CSRF | Injected script execution / requests riding the user's cookies | 05 | 跨站脚本 / 跨站请求伪造 |
| DOM | The object tree representing the page in the browser | 05 | 文档对象模型 |
| Accessibility (a11y) | Making UI usable by keyboard, screen readers and more | 05 | 可访问性 |
| Responsive breakpoint | A screen-width threshold where layout changes | 05 | 响应式断点 |
| Component / props / state | A function returning UI / read-only inputs from the parent / data React keeps | 06 | 组件 / 属性 / 状态 |
| Reconciliation | Diffing old and new element trees to compute minimal DOM changes | 06 | 协调 / 比对 |
| Lifting state up | Moving shared state to the nearest common parent | 06 | 提升状态 |
| Derived state | A value computable from other data; don't store it separately | 06 | 派生状态 |
| Effect / cleanup | Syncing with external systems after render / undoing the previous sync | 06 | 副作用 / 清理函数 |
| Controlled / uncontrolled input | Value driven by state / kept by the browser | 06 | 受控 / 非受控输入 |
| Optimistic update | Show the expected result before the server confirms; roll back on failure | 06 | 乐观更新 |
| Server state | A local cache of remote data (what TanStack Query manages) | 06 | 服务器状态 |
| Debounce / throttle | Run only after input pauses / limit run frequency | 06 | 防抖 / 节流 |
Rendering and full-stack
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| CSR / SSR | HTML produced in the browser / on the server | 07 | 客户端 / 服务端渲染 |
| SSG / ISR | Generated at build / generated then cached and periodically refreshed | 07 | 静态生成 / 增量静态再生 |
| Streaming SSR | Send the shell first; slow parts stream in later | 07 | 流式渲染 |
| Hydration | The client reuses server HTML and attaches events | 07 | 水合 |
| Server / Client Components (RSC) | Exist only on the server / code shipped to the browser | 07 | 服务器组件 / 客户端组件 |
| Server Function / Server Action | Callable from the client, runs on the server (really a network endpoint) | 07 | 服务器函数 |
| Request waterfall | Requests that could run in parallel run in sequence | 03 / 07 | 请求瀑布 |
| Meta-framework | A full-stack framework adding routing, rendering, data loading on top of a UI library | 01 / 07 | 元框架 |
| End-to-end type safety | Types inferred from the database all the way to the UI | 08 | 端到端类型安全 |
| Migration | A versioned change to the database schema | 08 | 迁移 |
| Authentication / authorization | Who you are / what you may do | 08 | 认证 / 授权 |
| IDOR | Checking login but not resource ownership | 08 | 不安全的直接对象引用 |
| Idempotency | Repeating an operation doesn't repeat its effect | 08 | 幂等 |
| Exponential backoff | Retry after waits that double each time | 08 | 指数退避 |
| Dead-letter queue (DLQ) | Quarantine for messages that keep failing | 14 | 死信队列 |
Deployment and engineering
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| Serverless | Instances started on demand, pay per use, no servers to manage | 09 | 无服务器 |
| Edge computing | Running code at the node nearest the user | 09 | 边缘计算 |
| Cold start | Startup delay when a new instance handles its first request | 09 | 冷启动 |
| V8 isolate | An execution-isolation unit lighter than a container (Cloudflare Workers) | 09 | 隔离沙箱 |
| Binding | A resource injected into a Worker via env | 09 | 绑定 |
| Preview deployment | An isolated environment created automatically per PR | 09 | 预览部署 |
| Definition of Done | The checklist a task must satisfy to count as done | 10 | 完成定义 |
| E2E test | A test simulating user actions in a real browser | 10 | 端到端测试 |
| CI | Automatically running checks on every commit | 10 | 持续集成 |
| Observability | Logs, metrics and traces for understanding production | 10 | 可观测性 |
AI and agents
| Term | One-line meaning | Ch. | 中文 |
|---|---|---|---|
| Token | The unit of text models process and bill by | 11 | 词元 |
| Context window | Max tokens one request can hold | 11 | 上下文窗口 |
| Time to first token (TTFT) | Time from request to the first token arriving | 11 | 首 token 时间 |
| Structured output | Constraining the model to return schema-conforming JSON | 11 | 结构化输出 |
| Tool / function calling | The model asking your code to run a function | 11 | 工具调用 |
| Embedding | Mapping text to vectors; similar meaning, nearby vectors | 11 | 嵌入向量 |
| RAG | Retrieve relevant material first, then generate from it | 11 | 检索增强生成 |
| Prompt caching | Repeated request prefixes processed cheaper and faster | 11 | 提示缓存 |
| Evals | Measuring AI feature quality with sample sets and scoring rules | 11 | 评估 |
| Prompt injection | Instructions smuggled in data to hijack the model | 11 | 提示注入 |
| Agent | A model using tools in a loop until the goal is reached | 12 | 智能体 |
| Harness | Everything around the model: instructions, tools, context management, permissions, feedback | 12 | 挽具 / 外围框架 |
| Context engineering | Deciding what goes into context on every turn | 12 | 上下文工程 |
| Compaction | Summarizing earlier context to free space | 12 | 压缩 |
| Subagent | A subtask worker with its own context | 12 | 子智能体 |
| MCP | An open protocol for plugging tools and data into agent hosts | 12 | 模型上下文协议 |
| Skills / hooks | Expertise loaded on demand / scripts run deterministically at lifecycle events | 12 | 技能 / 钩子 |
| Human-in-the-loop | Key steps require human confirmation | 12 | 人在回路 |
| Spec / acceptance criteria | What to build and how to judge it's done | 13 | 规格 / 验收标准 |
| Vertical slice | The smallest end-to-end runnable increment | 13 | 纵向切片 |
An 8-week study plan
Designed for 8–10 hours a week. Every week has a LinkNote milestone — shipping something that runs matters more than finishing chapters.
| Wk | Read | Build (LinkNote milestone) | This week's check |
|---|---|---|---|
| 1 | 00, 01, 02 | Set up the environment; run hello.ts; create a Vite + React project; write a first AGENTS.md | Explain how tsc differs from node running .ts |
| 2 | 03, 04 | A script that fetches page titles in bulk: concurrency limit, timeout, allSettled; a Zod discriminated union for Bookmark | Predict event-loop output order; no any in your code |
| 3 | 05, 06 | A list page on fake data: cards, tag filter (URL state), empty state, add form | Say where each piece of state lives, and why |
| 4 | 07, 08 | Move to Next.js or TanStack Start; add a database (Drizzle) and login; implement CRUD | Draw a request's layers and where types come from; delete endpoint safe from IDOR |
| 5 | 09, 10 | Deploy (any platform); set up CI; add unit tests and one E2E test | A public URL exists; CI runs on PRs automatically |
| 6 | 11 | Async summaries: queue + structured output + status updates; streaming "Ask my bookmarks" (read-only tool) | A 20-sample eval set; you know the cost of one summary |
| 7 | 12, 13 | Upgrade "Ask my bookmarks" to an agent; write a skill or hook for the project; ship a new feature with the six-element template | One feature goes from spec to merge in one pass |
| 8 | 14, review | Write a design doc for LinkNote (with estimates); practice 5 interview questions (record yourself answering) | Present LinkNote's system design within 45 minutes |
It's a reference pace, not a strict syllabus. If you already have a real project, use it in place of LinkNote and follow the same order. The one principle that matters: ship something that runs every week — don't spend weeks reading without building, and don't spend a week "setting up the perfect learning environment".
Self-assessment checklist
Tick the items you can do without notes, in your own words (ticks are saved locally in your browser).
Deep (must have)
Practice
Official resources
Things change fast; for concrete APIs, trust the official docs. You can also hand these links to your agent and have it read the docs before writing code.
| Area | Resource |
|---|---|
| JavaScript / web platform | MDN Web Docs |
| TypeScript | typescriptlang.org/docs (the Handbook) |
| Node.js | nodejs.org/docs |
| React | react.dev/learn (especially "You Might Not Need an Effect") |
| Next.js | nextjs.org/docs |
| TanStack (Start / Router / Query) | tanstack.com |
| Vite | vite.dev |
| Tailwind CSS / shadcn/ui | tailwindcss.com/docs · ui.shadcn.com |
| Zod | zod.dev |
| Drizzle ORM | orm.drizzle.team |
| Hono | hono.dev |
| Better Auth | better-auth.com |
| Vercel | vercel.com/docs |
| Cloudflare Workers | developers.cloudflare.com/workers · Agents SDK |
| Vitest / Playwright | vitest.dev · playwright.dev |
| AI SDK | ai-sdk.dev |
| Claude API | platform.claude.com/docs |
| Claude Code | code.claude.com/docs |
| Model Context Protocol | modelcontextprotocol.io |
| pi coding agent | github.com/badlogic/pi-mono |
Finally
Back to Chapter 00's analogy: from assembly to OOP, engineers wrote less code, but the demand for understanding "how the system works" didn't drop — it expanded to a higher level. Today's shift is the same. Agents will keep getting stronger, but knowing what you want, saying it clearly, and judging right from wrong — those three stay yours.
Go build what you want to build.