如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
现实项目里 ES 模块与 CommonJS 长期并存,本节讲清两者如何互相调用。先看 package.json 的 type 字段与 .mjs/.cjs 扩展名如何决定文件的模块类型,再拆解 esModuleInterop、verbatimModuleSyntax 等开关到底改变了什么,以及 import type、__dirname 缺失、双包危害等实战坑与对应报错。
本节从模块化的历史讲起,说明为什么全局脚本会互相污染、ES 模块如何用显式的 export 与 import 把依赖写进代码。随后逐一拆解命名导出、默认导出、重命名与副作用导入的取舍,讲清相对说明符与裸说明符的区别,并用表格对照五种 moduleResolution 的查找规则与适用场景,最后给出扩展名、目录索引、循环依赖三类高频坑与对应报错。
本节搭建 Spring Boot 开发环境:说明为何锁定 Java 21 LTS,给出 macOS、Linux、Windows 三种 shell 下安装 JDK 与配置 JAVA_HOME 的写法,附 java -version 与 mvn -v 实测输出;再配置 ~/.m2/settings.xml 国内镜像加速,并汇总版本不匹配、JAVA_HOME 未生效、拉包慢等常见故障的排查方法。
sys.argv 太原始,argparse 是标准库自带的命令行解析方案。本节覆盖位置与可选参数、type 与 choices、nargs、store_true/count/append、子命令、FileType、parse_known_args 与退出码,并给出 __main__ 守卫组织方式,每个示例都真实运行。
print 无法分级、无法定向、无法关闭。本节讲清 logging 的 Logger/Handler/Formatter/Filter 架构、层级传播与 basicConfig 的局限,用 dictConfig 写完整配置,示范 % 延迟格式化、exc_info 异常日志、自定义 JSON Formatter 与日志轮转。
datetime 与时区是 Python 最易踩坑的标准库之一。本节从时间戳讲起,理清 naive 与 aware 的区别,实测 utcnow() 的弃用警告,用 zoneinfo 演示 Asia/Shanghai 与 America/New_York 的夏令时边界,并对比 replace 与 astimezone 的经典陷阱、ISO 8601 与 timedelta。
围绕秋冷糖和乐汀的核心人物弧线,说明如何重写她们在三部曲中的关键场景、对话、关系变化和相互校正。
本节把 3.5.x 与 4.1.x 两条版本线摆到同一张表上逐项对照,从 Spring Framework、Jackson、Servlet、Tomcat 到测试注解的差异一次讲清,并给出新项目、存量项目、受监管行业三类团队的决策树,附本机 JDK 21 + Maven 3.9.12 的双线构建与启动实测数据,以及本套书主线 4.1 的阅读方法。
本节围绕 Spring Boot 4.x 的破坏性变更展开:从 4.0 的模块化重构讲起,用本机 4.1.1 与 3.5.16 的真实启动日志对比包名变化,给出 Starter 改名表、Jackson 3 迁移要点与 Servlet 6.1 基线,再列出 4.1 的 gRPC、API Versioning 等新增能力,最后判断 4.x 适合谁用、什么场景该等一等。
本节讲类型层面的最后一块硬骨头:递归类型如何用「自我引用加终止条件」描述 JSON、树与深层修饰;编译器为什么会抛出 2589 与 2456 两类错误;TypeScript 4.5 的尾递归消除与累加器写法如何把深度上限提到上千。后半程转入类型性能治理,用 tsc 的 extendedDiagnostics 与 generateTrace 定位实例化热点,并给出可落地的优化清单。
本节讲解模板字面量类型如何把字符串拼接搬进类型系统:用反引号加 ${} 构造字面量模式,与联合类型组合时自动展开成笛卡尔积,配合 Uppercase 等内置工具与 infer 实现字符串解析、Trim、Split、Replace 等递归算法。最后落到类型安全的事件名、路由参数与 i18n 键三个真实场景,并说明贪婪匹配、无法反向推断与编译性能这三类坑。
本节把 TypeScript 标准库里的内置工具类型逐个拆开:从对象修饰的 Partial、Required、Readonly,到集合运算的 Pick、Omit、Exclude、Extract,再到函数与异步相关的 ReturnType、Parameters、Awaited。我们用第 9 章的映射类型与条件类型手写它们,讲清浅层修饰与 Omit 键不受约束这两个常见坑,并给出分组速查表。
本节以一支准备把老系统重构为 Spring Boot 的团队为引子,先用真实的 web.xml 与 applicationContext.xml 展示传统 Spring 的配置负担,再拆解 Spring Boot 的三条核心主张——约定优于配置、起步依赖、内嵌容器,讲清它解决了什么、没解决什么,并梳理 Spring 生态的分工。读完你能判断一个项目该不该上 Boot。
json.dumps/loads 的 ensure_ascii、indent、sort_keys、default 参数与中文坑,csv 的 DictReader/DictWriter、newline 的必要性与 Sniffer,3.11+ 只读的 tomllib,以及序列化安全:pickle 为何不能反序列化不可信数据、yaml.safe_load 与 JSON 的边界。
从 open() 的模式与 encoding 参数讲起,说清为什么必须显式指定编码;对比 read()、readlines() 与逐行迭代的内存差异,用 pathlib.Path 做现代路径操作,覆盖 glob/rglob/iterdir/walk、__file__ 定位、UTF-8 BOM 与 GBK 乱码排查,以及 tempfile 配合 os.replace 的原子写入。
字符串方法全景、切片与不可变、三种格式化的取舍与 f-string 调试写法、encode/decode 的编码错误处理,再到 re 模块的 match/search/fullmatch 区别、分组与命名分组、findall 与 finditer、贪婪与非贪婪、sub 回引,以及预编译缓存与一条日志解析实战。
以《孢子危机》的前兆章节为样章,说明如何从章节卡片、自然线索、人物视角和信息延迟四个方面启动危机线重写。
本节讲解类型运算的最后一块拼图:条件类型 T extends U ? X : Y 如何充当类型层面的 if/else,分布式条件类型在联合类型上的展开规则,以及用方括号包裹阻止分发的技巧。随后深入 infer 关键字,演示如何从函数签名、数组、元组和 Promise 中提取类型,并手写 Exclude、ReturnType 等工具类型的实现。读完你能看懂类型库的黑箱签名,并规避 never 陷阱。
本节讲解映射类型:如何用 [K in keyof T] 遍历一个类型的所有键并批量生成新类型,如何用 readonly 与 ? 的加减号增删修饰符,以及 TypeScript 4.1 引入的键重映射 as 如何借助模板字面量类型改写键名、借助 never 过滤掉不需要的键。本节会手写 Partial、Readonly、Required 等工具类型的内部实现,读完你能为自己的项目定制专用工具类型。
本节讲解 TypeScript 类型编程的三块基石:用 keyof 取出对象类型的全部键名,用 typeof 从运行时值反向推导类型,用索引访问类型 T[K] 精确取出某个属性或数组元素的类型。三者组合出的 keyof typeof 是工程中最常见的写法,能让类型与实现保持单一数据源。本节配有可运行示例与真实报错信息,读完你能读懂类型库中的索引写法,并为映射类型与条件类型打下基础。