如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
本节讲解 NestJS 请求处理流水线里的三类横切组件:管道负责校验与转换入参,守卫决定请求能否放行,拦截器在方法前后织入日志、响应包装与超时控制。我们给出它们的执行顺序、手写实现与全局注册方式,并对比各自的适用边界。读完本节,你能把校验、鉴权与日志从控制器里抽干净,写出无重复样板的后端接口。
本节讲解 NestJS 的模块、提供者与依赖注入三件套如何协作:用 @Injectable 与构造函数声明依赖,用 @Module 划清边界,用自定义提供者与注入令牌替换实现,并处理循环依赖与作用域陷阱。读完本节,你能为真实后端项目设计出层次清晰、可测试、可替换的模块结构,也能看懂任意一个 NestJS 项目的装配图。
把「图书借阅管理服务」的动作式接口重写成资源式接口:讲清资源命名的判据、URL 层级与扁平化的取舍、HTTP 方法与状态码的语义,以及批量操作、自定义动作和统一错误响应该在什么条件下破例,并给出可直接复用的 Controller 与 ProblemDetail 代码。
前端从 5173 端口调用 8080 的图书接口,浏览器报跨域,可服务端日志里请求明明到了。本节讲清同源策略拦的到底是谁、简单请求与预检请求的区别,贴出真实的 OPTIONS 预检头,演示 @CrossOrigin、addCorsMappings、CorsFilter 三种配置,并说透 allowedOriginPatterns 与 allowCredentials 的坑。
用 lifespan 管理应用级资源(连接池、后台任务),在 SIGTERM 下实现优雅关闭让在途请求跑完,并按 Kubernetes 语义设计 liveness 与 readiness 两类健康探针;全部用 uvicorn 0.54.0 真实进程实测。
用中间件把日志、请求 ID、耗时统计等横切关注点从业务里抽出来:对比 BaseHTTPMiddleware 与纯 ASGI 两种写法,用 request.state 与 contextvars 传递请求上下文,并实测中间件的洋葱顺序与并发下的上下文隔离。
用 FastAPI 0.143.0 搭一个分层后端:把 api / service / repository / schema 四层拆开,用 APIRouter 分文件装配,用 Depends 区分请求级与进程级依赖,用 lru_cache 做单例,并用 dependency_overrides 做测试隔离;每一步都给出真实运行结果。
本节处理 TaskAPI 的中文标题:先立住「string 是不可变 UTF-8 字节序列」这个事实,用实测数据说明 len 与字符数为何不同、按字节切会切出非法 UTF-8,再讲 range 如何解码、[]byte 与 []rune 的转换代价,最后用 strings 包与 Builder 写出按字符校验、按字符截断的标题处理函数。
本节给 TaskAPI 加上 map[int64]Task 索引,让按 ID 查找从遍历降为常数时间:从字面量与 make 起步,讲透 comma-ok 惯用法与「读不存在的键返回零值」这个经典陷阱,再说明键的约束、遍历顺序随机、用 map 做集合,最后用 maps 包与双结构索引组装出内存版存储。
本节让 TaskAPI 拥有真正的任务列表:先用数组与切片的语义差异(值类型 vs 描述符)立住概念,再拆解 len/cap 与 append 的扩容实测数据,重点讲清共享底层数组导致的数据污染与三索引切片的解法,最后用 slices 包给 []Task 排序、查找并组装出内存版存储。
用标准库按完整用户轮次裁剪历史,保留系统指令和最近一轮,将工具描述及裁剪说明计入近似预算;超限无法满足时在调用模型前明确失败。
本节给 Model 协议接上真实供应商:以 Anthropic SDK(anthropic 1.13.0)为例,把 minagent 的 Message 翻译成 SDK 入参、把 SDK 响应折叠回 ModelResponse,密钥只用 os.environ 读取、示例默认不真调。重点讲「录制夹具」:把一次真实响应存成 JSON,离线用 RecordedModel 重放,做到零凭据可回归。
本节把「调用大模型」抽象成 minagent 的 Model 协议:用一个 complete(messages, tools) 方法屏蔽供应商差异,用统一的 ModelResponse 承载回复、停止原因与用量。我们讲清协议为什么存在、complete 与 stream 如何取舍,再给出 EchoModel 与 ScriptedModel 两个可运行实现,并验证它们可以互换。
本节区分契约测试与集成测试的边界,说明消费者驱动契约在 Spring Cloud Contract 与 Pact 之间的选型,并给出数据隔离三策略(事务回滚、@Sql、每测试独立 schema/容器)的对比、测试数据构造规范,以及 @DirtiesContext 的真实代价。
协作式抢占和异步抢占的区别、sysmon 干什么,站内专题讲过概念。本节只写增量:用两组真实实验量化抢占——关闭异步抢占后 GC 的 STW 从 0.3ms 暴涨到 1.8s,以及 GOMAXPROCS=1 下阻塞系统调用被 sysmon 夺回 P;再定位到 proc.go:sysmon/retake/preemptone 与 preempt.go:asyncPreempt。
调度循环长什么样、work stealing 怎么工作,站内专题讲过原理。本节只写增量:用 schedtrace 的每-P 队列长度和 runtime/metrics 的 goroutine 状态计数,实测窃取的痕迹;再顺着 proc.go:schedule→findRunnable→stealWork→runqsteal 把代码走一遍;最后给一张「队列分布→结论」的决策表。
G/M/P 是什么,站内 Go 专题已经讲过。本节只写增量:用 GODEBUG=scheddetail=1 的真实回显,把每个 goroutine 的 status 与 waitreason 逐字段读出来,再定位到 src/runtime/runtime2.go 的状态常量与 g/m/p 结构体,最后给出一张可直接对照的状态迁移表。
本节解释内嵌 H2 为何会掩盖 PostgreSQL 方言差异,给出 Testcontainers 2.0 在 Spring Boot 4.x 下的依赖坐标、@ServiceConnection 用法与共享容器模式,讲清容器复用、CI 里 Docker 的可用性前提,并附镜像拉取、端口、健康检查三类失败的排查清单。
这三个包原本只能从 golang.org/x/crypto 拿,Go 1.24 把它们收进了标准库。本节实测 SHA-3/SHAKE 输出与 NIST 向量一致、HKDF 派生 42 字节、PBKDF2 派生 32 字节,并给出三者的版本归属(均在 1.24,SHA3.Clone 在 1.25),最后用一张决策表说清「什么时候该用哪个 KDF」。
后量子密钥封装 ML-KEM(FIPS 203)在 Go 1.24 进了标准库。本节实测 768 与 1024 两套参数的完整往返、打印密钥与密文长度、验证从种子重建密钥,并揭示一个反直觉的点:密文被篡改时 Decapsulate 不报错、而是走隐式拒绝返回另一个密钥。附 api 证据与 tlsmlkem 开关状态。