如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / BOOKS
从第一章开始,把知识读成体系。
按领域与学习阶段整理的在线电子书与创作手记。覆盖 Rust、Lua、TypeScript、Python、Java(Spring Boot)、Go、AI Agent、MMO 服务器开发(Go 主线 + Java 21 双栈对照,四卷本 180 篇)、游戏开发(含 Cocos 四卷本与《游戏引擎实现原理》四卷本)与文学创作,从阅读指南进入,或按全书目录查找章节。
了解阅读方式4 部书稿
从所有权与借用,到工程实战与系统编程。
3 部书稿
从脚本基础,到语言机制与游戏业务。
2 部书稿
从客户端引擎,到服务端架构与完整项目。
4 部书稿
用 Go 从零实现一套能真跑、能压测、能跨服的 MMO 服务端 aegis,Java 21 作为双栈对照。
用 Go 从零实现 aegis 的网络底座:协议、KCP、会话、路由、定时器、Actor、同步模型与安全,直到能登录、能移动、能广播的最小服务器。
把玩法装进底座:实体运行时、AOI、战斗、背包、任务、社交、交易与匹配,把《晨曦大陆》做成单服可玩。
把单服推成集群:服务发现、RPC、网关集群、实例调度、跨服玩法、缓存、分库分表与分布式事务。
把服务端交付并长期运营好:压测、性能、可观测性、部署发布、配置热更、数据分析、GM 后台与容灾演练。
4 部书稿
从零手写 2D 运行时,到 Cocos Creator 3.8 交付产品,再到引擎内部与客户端联机。
手写 mini2d 运行时打通帧循环、渲染、物理与存档,每章对照 Cocos Creator 3.8。
用 Cocos Creator 3.8 交付《方块冲刺》,走到 H5 / 微信小游戏 / 原生三端上线。
深入渲染管线、Effect 体系与内存性能,学会读源码、裁剪引擎并评估升级。
从预测与和解到弱网降级,用可单测的纯逻辑实现《方块冲刺》双人竞速客户端。
4 部书稿
用 TypeScript 从零实现一个 3D 游戏引擎:内核、渲染、子系统与工具,直到工程化交付。
用 TypeScript 从零写出 helio 内核:内存、句柄、ECS、任务与反射,直到《微光岛》第一个能走动的方块。
从 RHI 三后端到帧图与后处理,把《微光岛》的小岛真正渲染出来。
资源管线、动画物理音频输入与脚本热重载,外加一套能编辑、能撤销、能存盘的编辑器。
构建、测试、性能、跨端与交付:把《微光岛》从能跑推到能发,并做跨引擎对照。
3 部书稿
按入门、实战、高级三步,建立类型与工程能力。
从基本类型、函数与泛型,到类型建模、模块和工程配置,以全栈项目收尾。
面向项目交付,覆盖测试、服务端与数据层、前端类型实践、API 契约及部署运维。
面向库与工具链作者,深入类型级编程、编译器 API、声明发布和运行时边界。
3 部书稿
从语言基础与工程交付,深入 CPython 与性能优化。
面向零基础读者,从数据结构与函数,到类型注解、并发异步、测试打包与应用项目。
从工程脚手架出发,实践 Web 服务、数据访问、后台任务、自动化与生产部署。
深入 CPython 对象模型、字节码、GC 与并发运行时,理解扩展机制和性能工程。
3 部书稿
从 Spring Boot 入门与工程实战,到框架内部机制与版本迁移。
面向零基础读者,从环境搭建与第一个接口,到 Web、数据访问、测试与完整项目。
从工程脚手架出发,实践 Web 服务、数据访问、缓存、消息与生产部署交付。
深入容器、自动配置、AOP、请求管线与事务机制,理解框架内部与 3.x 到 4.x 迁移。
4 部书稿
从语言入门到工程实战,再到高级特性与运行时原理。
3 部书稿
从零手写 Agent 引擎,到工程化服务,再到框架重写与生产化加固。
从零手写 Agent 引擎 minagent,把消息、工具、记忆、编排、评测到服务化逐章跑通。
把引擎装成可上线的研究助理服务,覆盖接口、数据、并发、可观测与部署交付。
用主流框架重写研究助理并剖析源码,补齐持久化、计算机使用、A2A 与生产化加固。
1 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
令牌解决了「你是谁」,但 viewer 和 owner 能做的事完全不同,而且不同租户的数据绝不能互相看见。本节给 TaskHub 建 owner/admin/member/viewer 四级角色与权限矩阵,把认证、租户与权限校验串成中间件链,再用一个真实的反面仓库演示「忘了带 tenant_id」如何导致跨租户泄漏,给出参数、类型与行级安全三种隔离实现,并用表驱动测试锁住权限边界。
上一章的接口任何人都能调用,本节给 TaskHub 装上认证。先用 jwt/v5 讲清 JWT 的三段结构与 claims 设计,把「锁死算法、校验 iss/aud/exp」五个必做项落成代码,实测篡改 payload、alg=none、过期、错签发者与算法混淆五种攻击的拦截结果,再用真实 Redis 做会话撤销与刷新令牌轮换,并对比本地校验与远程吊销检查近千倍的成本差。
《TypeScript高级编程》全书导航页:说明本书写给谁、解决什么问题,给出完整通读、主线速读与当参考手册三条学习路径,按四个部分列出 11 章 33 节的完整章节索引,每节附一句话说明,并含各部分导读、本篇定位与延伸阅读专题清单,方便按需定位、跳读与长期查阅。
本节系统拆解缓存的三种失效模式并给出可直接落地的 TypeScript 代码。先对比穿透、击穿、雪崩的成因与线上表现,再分别用布隆过滤器与空值缓存挡穿透、用进程内单飞配合分布式锁与逻辑过期挡击穿、用 TTL 抖动、多级缓存与熔断降级挡雪崩,最后把三者组合成一条抗压读路径,并给出锁超时、哨兵值污染、抖动区间设置等常见坑的排查方法。
本节把裸 Redis 客户端那层 string 边界升级成编译器可检查的类型边界。先拆解键空间声明、codec 与客户端三层封装的职责,再用 TypeScript 泛型与 as const 推导实现 defineCache、类型化 get/set/mget/del 与 remember 缓存旁路助手,并用 Zod codec 在反序列化阶段拦截结构漂移,最后给出管道批量与常见类型漏洞的修复方案。
本节讲清缓存分层的工程取舍与缓存键的设计规范。先给出浏览器、CDN、进程内、Redis、数据库五层缓存各自的职责表与失效半径对比,再深入缓存键的三要素——命名空间、版本号与粒度,并用 TypeScript 写出类型安全、可版本化的键构造器与稳定序列化函数,最后列出大小写、浮点精度、对象键顺序等常见键冲突坑与排查手段,读完能独立设计一套不互相污染的键空间。
讲清 Spring Boot 4 下 springdoc-openapi 3.x 的依赖坐标与版本线,用 @Operation、@Schema、@ApiResponse 补齐接口语义,划清推断与注解的边界,用 GroupedOpenApi 拆分前台与后台文档,并给出生产环境关闭文档或加鉴权的两种收口方式与四类常见坑。
本节把图书管理服务从内存 Map 换到真正的数据库:引入 spring-boot-starter-data-jpa 与 H2、MySQL 驱动,逐项讲清 spring.datasource.* 与 HikariCP 关键参数的默认值,用表格对比 ddl-auto 四个取值的风险,并演示 4.1 新增的惰性连接获取与启动期连不上库的真实报错。
接口一旦发布就是契约,改它要付代价。本节讲清哪些字段变更是破坏性的、哪些是安全的,用 deprecated 与 Sunset 头做渐进弃用,给出 URL/Header 两种版本化策略,并写一个能自动检测破坏性变更的 OpenAPI 契约 diff 脚本。
上一节设计好的 Pydantic 模型,本身就是一份机器可读的契约。本节让 FastAPI 导出真实的 /openapi.json,逐段解读 schema 里字段约束如何映射,再讲客户端代码生成的三条工具路径与命令,并手写一个基于 httpx + ASGITransport 的最小客户端跑通端到端调用,最后把 schema 断言写进 CI。
上一章我们用 SQLAlchemy 打通了数据库,这一节回到 HTTP 边界:用 Pydantic V2(2.13.5)设计请求/响应模型。覆盖 Field 约束与 Annotated 复用、field_validator 与 model_validator、ConfigDict 关键开关、别名、computed_field,以及 model_dump 的取舍与 from_attributes。
接口设计的好坏决定了代码的可测性与可演进性。本节用 TaskStore 讲清「接受接口、返回结构体」、小接口组合、接口嵌入、编译期断言、标准接口的语义约定、接口隔离与依赖精确化,以及何时不该用接口,并给出 TaskAPI 存储层的接口边界与扩展判据。
把值放进接口后,怎么取回来?本节围绕 TaskStore 与 any 讲清类型断言的单值与双值形式、断言失败 panic 的时机、断言到接口类型、type switch 的分支匹配顺序与 default 兜底、%T 诊断,并给出项目里安全断言与错误分支的完整实践写法。
接口是 Go 实现抽象的核心机制。本节为 TaskAPI 定义 TaskStore 接口并写出内存实现 MemStore,讲清隐式实现、接口即契约、方法集与接口满足、空接口与 any、接口值的内部结构、fmt.Stringer 的自动调用,以及为什么接口应由使用方定义。
模型一轮可以同时发出多个 tool_call。本节先看串行执行的浪费,再用 concurrent.futures.ThreadPoolExecutor 把多个工具并发跑起来,对比串行与并行的实测耗时,并给出 asyncio.gather 的等价写法,最后讲清结果如何按 tool_call_id 对齐合并回消息。
用标准库保留贯穿项目接口,验证缺字段、类型错误、额外参数和序列化失败,并通过离线事件实验区分等待超时与终止执行。
本节把工具层拆成 Tool 与 ToolRegistry 两个小对象:先讲 JSON Schema 的两种生成方式(手写与从类型注解推导),再用极简版 get_type_hints 自动产出 schema,最后实现按名分发、未知工具返回 error 而不抛异常。全部代码在 Python 3.14 实测跑通。
N+1 是 JPA 生产事故的头号来源。本节从 SQL 日志里还原 N+1 的形态,对比 JOIN FETCH、@EntityGraph 与 @BatchSize 三种抓取策略的代价,讲清分页叠加 fetch join 的经典陷阱与 LazyInitializationException 的根因,并给出定位与验收方法。
用 -memprofile 加 pprof 的 -alloc_space / -alloc_objects / -list 三件套,把分配热点从函数级定位到行级;再用同一份 benchmark 对比 bytes.Buffer 裸用与 sync.Pool 复用,实测 allocs 从 10 降到 1、B/op 从 44992 降到 12293,并诚实报告 ns/op 没有明显改善。
把 -gcflags=-m 的每一行拆开读:从 go1.27.0 的 escape 包(escape.go、graph.go、solve.go、leaks.go)看数据流图怎么建、leaks 位图怎么编码、不动点怎么解,并用同一段代码在开/关内联下的不同输出,解释「moved to heap」「escapes to heap」「flow:」三行分别在说什么。