如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
硬编码配置撑不过多环境。本节用 pydantic-settings 2.15.0 讲清配置来源优先级(环境变量 > .env > 默认值)、类型转换与 field_validator 校验、SecretStr 脱敏、嵌套配置与多 .env 合并,以及 lru_cache 缓存配合 FastAPI 依赖注入的落地方式。
本节把 TaskAPI 从「一个文件」升级成「一个项目」:执行 go mod init taskapi 并逐行读懂 go.mod,讲清模块路径的选法与 go.sum 何时才出现;再搭出 cmd/ 与 internal/ 目录骨架,用 go build ./...、go list 验证结构,最后给出一份可直接照抄的初始化清单与 .gitignore。
本节让 TaskAPI 说出第一句话:写出最小可运行的 main.go,讲清 package main、import 与 func main 三件套;随后用实测对比 go run、go build、go install 三种执行路径的差别与产物位置,再用 os.Args 为后续 add/list/toggle 子命令打底,最后用 go vet 与退出码收尾。
本节先把 Go 工具链装起来:对比 Homebrew、官方安装包与源码包三种方式,验证 go version 与 go env,搞清 GOROOT、GOPATH、GOMODCACHE 各自管什么;再用 GOTOOLCHAIN 讲清 Go 1.27 的版本协商机制,最后给出 gopls 编辑器配置与 fmt/vet/doc/test 内置工具速查表。
把第三部起源证据回收样章扩展为《孢子起源》的正式证据链章节组,连接土地证据、旧报告、乐汀记忆和秋冷糖的答案边界。
本节讲 Maven 构建加速:先给出定位慢在哪里的步骤,再逐项拆解跳过无用阶段、按模块增量构建、并行构建、依赖预拉与离线、CI 缓存本地仓库、镜像源与增量编译等手段,重点说明 4.1 中 -DskipTests 不再跳过测试 AOT 处理这一语义变化及替代写法。
本节讲 Spring Boot 多模块工程的版本对齐:对比 spring-boot-starter-parent 与 spring-boot-dependencies BOM 的引入方式与取舍,说明 import scope 的生效规则、如何自建 BOM 统一内部组件版本、如何用 properties 或显式声明覆盖托管版本,并汇总 4.x 各依赖的大版本变化与 4.0 移除的依赖管理。
本节说明 console.log 为什么在生产环境不可用,并给出结构化日志的字段约定。随后用 pino 搭一套类型安全的日志封装:child logger 绑定请求上下文、err 序列化器还原堆栈与 cause、redact 路径与自定义 serializer 做脱敏。最后讲如何把日志与 trace_id 关联、级别与采样策略,以及 JSON.stringify(error) 得到空对象等坑。
本节讲 Result 覆盖不到的失败:Node 进程级的 uncaughtException 与 unhandledRejection 该怎么用;React 错误边界如何捕获渲染期异常,以及它捕获不到事件处理器与异步错误的原因;Next.js App Router 的 error.tsx 与 global-error.tsx 落点。最后给出统一的上报管线与去重、采样、flush 等实战细节。
本节从 throw 的类型黑洞讲起,说明 TypeScript 的函数签名为何无法表达失败路径。随后手写一套零依赖的 Result/Either 判别联合:Ok/Err 构造、isOk/isErr 类型守卫、map/mapErr/andThen 组合子、unwrapOr 兜底与 fromPromise 互转。再讨论异步流程中把错误搬进类型签名的写法,并划清预期业务错误与意外异常的分工。
本节用图书借阅服务 book-loan 的五模块工程讲透 Maven 依赖冲突排查:从 NoSuchMethodError 等症状反查依赖树,读懂 dependency:tree 的 omitted 与 conflict 标记,掌握最短路径优先与先声明优先两条调解规则,并给出 exclusions、dependencyManagement 与 dependency:analyze 的用法。
把异常处理从各控制器集中一处,用 @ControllerAdvice 与 @RestControllerAdvice 做全局处理,并用 basePackages、assignableTypes 等限定范围。还会改写框架内置异常(校验、JSON 解析、405、404),用 @Order 排优先级,并借 ResponseEntityExceptionHandler 统一内置异常响应。
一份代码要在多个 Python 版本上跑通。本节实测 uv python list 与 --python-version 的多版本解析,对比 tox 与 nox 的组织思路,给出 GitHub Actions 矩阵配置与缓存键设计,让 CI 既不重复下载也不误用陈旧缓存。
内网与 CI 常常无法直连 PyPI。本节实测 [[tool.uv.index]] 镜像配置与 UV_INDEX_URL 环境变量,讲清私有源凭证与 uv 缓存机制,并用 uv sync --offline 与 wheelhouse 演示一次完全离线的依赖安装与校验。
锁定文件是可复现构建的地基。本节先拆解 pip freeze 为何不可复现,再对比 uv.lock 与 pip-tools 的解析与锁定机制,实测约束文件、平台标记与 PEP 751 pylock.toml,最后讲哈希校验如何把依赖内容彻底锁死。
把乐汀复课记忆和共生试验冲突样章转化为《孢子崛起》的正式章节组,连接灾后重建、孩子记忆、技术希望和伦理代价。
讲清按功能分包与按层分包的取舍,给出图书借阅服务「模块边界 + 模块内按层」的分包方案,演示用 package-private 收窄暴露面、约束模块间依赖方向,并用 ArchUnit 把「禁止循环依赖」「领域层保持纯净」等架构约束固化成会在 CI 上失败的测试。
讲清父 POM 的 parent 继承与 dependencyManagement 版本管理的分工,演示导入 spring-boot-dependencies BOM、子模块声明依赖、用 Enforcer 预防版本冲突,以及可复用库模块的打包与发布方式。
本节解决「运行时报错的行号对不上源码」这一痛点。先讲清 source map 是什么、由哪些字段组成,再配置 tsconfig 里的 sourceMap、inlineSources 与 declarationMap;随后给出 Node 调试的三种姿势,讨论生产环境该不该带 source map,并列出断点错位、找不到源文件等常见坑与真实报错。读完你能让断点准确落在 .ts 文件上。
本节把环境变量与配置纳入类型系统。先讲清 process.env 的真实类型为什么是 string 或 undefined,再依次给出三档方案:手写声明合并、Zod 启动时校验加类型推导、以及多环境文件的分层加载。随后讨论密钥不进仓库、构建期变量与运行期变量的区别,并列出配置项缺失、布尔值被解析成字符串等常见坑与真实报错。读完你能写出一份启动即校验、类型自动推导的配置模块。