如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
本节讲解 TypeScript 中类与接口的两条连接方式:用 implements 让一个类同时承诺多份契约,用接口继承接口组合出更大的类型;并系统对比接口、抽象类与类型别名的适用边界。随后进入 mixin 模式,讲清如何用构造器泛型把多个行为混入同一个类,从而绕开单继承的限制,并给出类型安全写法的常见坑。读完本节,你能为复杂业务设计出契约清晰、复用灵活的类结构。
本节讲解 TypeScript 中类的继承与多态:如何用 extends 与 super 复用父类行为,方法重写时 override 关键字和 noImplicitOverride 选项如何防止漏改,抽象类与抽象方法怎样把公共流程固定下来而把差异留给子类,以及多态与里氏替换原则在真实代码中的体现。读完本节,你能用抽象类设计可扩展的骨架代码,并认清继承的代价与何时该改用组合。
本节讲解 TypeScript 的类相比 JavaScript 多出了什么:访问修饰符如何约束成员的可见性,参数属性怎样把构造函数的样板赋值压缩成一行,普通私有成员与井号私有字段又有什么本质差别。读完本节,你能为真实工程里的领域模型写出既安全又简洁的类,并避开严格模式下属性未初始化的常见报错,为后续学习继承与多态打好基础。
《Spring Boot 入门》的序。从 Spring Boot 今天在 Java 生态中的位置谈起,说明本站既有的 92 篇 Java 与 Java 企业级开发专题做的是「单点深挖」、这套书补的是「从零到能上手」的递进路径,并交代 4.x 破坏性变更带来的影响、面向的读者,以及一个诚实的阅读预期。
本节讲清魔术方法如何让自定义对象融入 Python 语法:__str__ 与 __repr__ 的分工、定义 __eq__ 后 __hash__ 被置空的陷阱、用容器协议让对象支持 len 与迭代、__call__ 让实例可调用、上下文管理协议,以及 __add__/__radd__/__iadd__ 运算符重载与 __format__ 配合 f-string 的写法。
本节讲清继承语法与 super() 的含义——它不是父类而是 MRO 里的下一个类,并演示菱形问题。接着介绍 abc.ABC 的约束力与组合优于继承的判断标准,再拆解 dataclass 的 field、default_factory、frozen、order、slots 等参数,用选型表对比 dataclass、NamedTuple 与 TypedDict,并演示 PEP 695 泛型类。
本节从 class 语句做了什么讲起,厘清 __init__ 是初始化器而非构造函数,实例属性与类属性的区别及可变类属性被所有实例共享的陷阱;再讲方法绑定中 self 的来源、property 与 setter、staticmethod 与 classmethod 的取舍,用 __mro__ 说清属性查找顺序与 C3 线性化,最后用 tracemalloc 实测 __slots__ 的内存收益。
把《孢子三部曲》第一轮盘点推进到第3周,完成伏笔编号、线索回收状态检查、旧稿分类和废稿归档。
本节回答两个贯穿全章的问题:为什么 TypeScript 只比较类型结构、不比较类型名字,以及 interface 与 type 到底该怎么选。内容涵盖结构化类型(鸭子类型)的判定规则、它带来的「意外兼容」风险、用品牌类型模拟名义类型的工程手法,并给出一份可直接照做的取舍清单与代码评审要点。读完本节,你既能解释类型兼容背后的原理,也能在团队里统一 interface 与 type 的使用规范。
本节讲解 type 别名的定义方式与它相对 interface 的独有能力:给联合类型、交叉类型、元组、函数、字面量起名字。重点剖析联合类型(这个或那个)与交叉类型(这个并且那个)的语义差别、组合规律与常见陷阱,并用一个状态机模型演示两者如何协同表达业务约束。读完本节,你能用类型精确描述「多种可能」与「多项能力叠加」,并知道何时该用 type、何时该用 interface。
本节从「如何描述一个对象长什么样」这个问题出发,系统讲解 interface 的定义方式与核心能力:必填属性、可选属性、只读属性、方法签名、索引签名以及接口继承。读者将学会用 interface 为真实业务对象建模,理解 excess property check 的触发时机,并掌握常见报错的定位思路。读完本节,你能为 API 响应、配置项、组件 props 等结构化数据写出清晰的类型契约。
本节处理导入体系里最易踩坑的三类问题:循环导入的成因与三种真实修法(调整导入位置、TYPE_CHECKING 类型专用导入、把共享部分抽到第三个模块)、PEP 420 命名空间包的机制与适用场景,以及惰性导入的几种做法,含 Python 3.15 的 PEP 810 语法与版本边界。最后用 python -X importtime 看导入与启动时间的关系。
本节聚焦「包」这种组织模块的方式:有 __init__.py 的目录发生了什么、空文件与写满代码的 __init__.py 各有什么代价、from 包.模块 import 名字 如何逐层解析、相对导入「只能在包内使用」的硬约束从何而来。还讲了 __all__ 对 import * 的控制、用 importlib 动态导入,以及预导入在易用性与启动时间间的取舍。
本节从「Python 是怎么找到并加载模块」出发,讲透 import 的三种形式及差异、模块对象与名字绑定的区别、sys.modules 缓存带来的「模块只执行一次」语义,以及 sys.path 的构成与搜索顺序。重点用真实实验对比 python -m 与直接运行脚本时 sys.path[0] 的不同,解释相对导入为何会报错,并说明 __name__ 守卫的原理。
把《孢子三部曲》第一轮盘点推进到第2周,集中完成人物卡片、人物出场索引、乐汀年龄线和三部曲时间线校验。
泛型是 TypeScript 类型系统里最重要的复用机制。本节从「同一段逻辑要处理多种类型」这个朴素需求出发,讲清类型参数的含义、泛型函数的写法、类型参数的自动推断与显式指定,并重点说明泛型与 any 的本质差别——泛型保留类型信息,any 抹掉类型信息。最后给出多个类型参数、数组与对象泛型的常见模式,以及初学者最容易踩的推断陷阱。读完本节,你能为任意函数写出既不丢类型又足够通用的签名。
一个函数在类型层面可以有多个签名,这就是函数重载。本节先讲清重载签名与实现签名的分工、匹配顺序以及常见的重载误用,再转向 TypeScript 对 this 的处理:this 参数如何显式声明、箭头函数为什么能锁住 this、以及回调里丢失 this 的经典错误如何被编译器提前拦下。读完本节,你能为同一个入口设计出精确的多形态签名,并彻底理解 this 在类型系统中的行为。
函数是 TypeScript 程序的基本构件,而函数签名则决定了调用方能看到什么、编译器能替你检查什么。本节从函数类型注解讲起,逐步展开参数与返回值的标注方式、可选参数与默认值的语义差异、剩余参数与参数解构的写法,并给出严格模式下的常见报错与修复思路。读完后你将能写出签名清晰、对调用方友好、且能被编译器完整校验的函数,为后面学习重载与泛型打下基础。
本节核心事实是:Python 里函数是对象,能被赋值、放进容器、当参数传、当返回值,这正是 lambda 与 functools 存在的原因。接着讲清 lambda 的边界与 PEP 8 建议,比较 map/filter 与推导式的取舍,介绍 itemgetter/attrgetter 替代 lambda,最后演示 reduce、singledispatch 与 functools.cache。
本节把函数讲透:从定义与文档字符串说起,拆解位置、默认、*args、仅关键字、**kwargs 五种参数形态,以及调用时用 * 和 ** 解包。重点讲清默认值只在定义时求值一次的陷阱,它和 3.3 节的可变默认参数一脉相承。随后用 LEGB 规则解释名字查找,说明 global 与 nonlocal 的用法并给出闭包示例,最后介绍类型注解、lru_cache 与 partial。