如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
Rust 是一种系统编程语言,其设计初衷就是在保持高性能的同时,提供现代语言的安全性和易用性。Rust 在执行效率方面与 C 和 C++ 等传统系统编程语言相媲美,同时它还通过 零成本抽象(Zero-cost Abstractions)来确保开发者能以较少的性能损失实现更高层次的抽象。
在 Rust 中,内存分配的方式主要有两种:栈(Stack) 和 堆(Heap)。这两种内存分配方式决定了数据存储的位置、生命周期以及访问速度。了解这两者的区别和工作原理,是理解 Rust 内存管理机制的关键。
Rust 是一门系统级编程语言,它的内存管理机制非常特别,与其他编程语言(如 C/C++)相比,Rust 提供了一个更加安全且无需垃圾回收(GC)机制的方案。这是通过其独特的 所有权(Ownership)、借用(Borrowing) 和 生命周期(Lifetimes) 模型来实现的。
在并发编程中,共享状态可能会导致数据竞争(Data Race),从而引发程序的不确定行为。Rust 的核心设计理念之一是通过编译时检查避免数据竞争。它提供了多种方式实现线程间共享状态的安全性,主要包括使用 Mutex 和 RwLock。
在 Rust 中,线程间通信的推荐方式是通过消息传递而非共享状态。这种方法可以显式地管理数据的所有权和生命周期,减少数据竞争。Rust 的标准库提供了一个 mpsc 模块,用于实现线程间的 多生产者单消费者(Multiple Producer, Single Consumer) 模型。
Rust 的并发编程以安全性和高效性为核心设计目标。通过 std::thread 标准库模块,Rust 提供了对线程的简单而强大的支持。Rust 的线程模型以操作系统线程为基础,结合其所有权和类型系统,确保并发编程中的安全性和可靠性。
在 Rust 中,模块系统提供了强大的访问控制功能,通过定义项目中项(如模块、函数、结构体、字段和枚举)是 公有(public) 还是 私有(private),开发者可以清晰地表达哪些部分是对外可见的公共接口,哪些是内部实现的细节。
Rust 的 包(package) 和 crate 是构建和组织代码的核心概念。它们帮助开发者管理代码模块化、依赖以及构建流程。
Rust 的模块系统是语言核心设计之一,用于帮助开发者组织代码、复用逻辑,并构建可维护的代码库。通过模块,开发者可以将代码分解成多个逻辑单元,方便调试和管理,同时支持良好的访问控制机制(公有性和私有性)。
在 Rust 中,特性约束和特化是实现泛型编程的强大工具。通过特性约束,可以限制泛型类型的能力,而通过特化,可以为特定类型或条件提供专门实现。
特性(Traits)是 Rust 中的重要语言特性,它用于定义一组可以共享的行为。可以将特性视为一种接口,通过特性可以声明某些类型需要实现的函数和行为,从而实现多态性和代码复用。
泛型编程是一种通过参数化的方式编写代码,使其能够处理多种不同类型的数据,而无需重复编写代码。在 Rust 中,泛型是一个重要的特性,它不仅提高了代码的复用性,还能保持强类型系统的安全性。
在 Rust 中,错误处理是语言设计的重要部分,Rust 通过 Result 和 Option 枚举类型让开发者能够明确地处理错误。为了便于错误处理,Rust 提供了一些有用的工具来传播错误,使得错误的处理更加简洁和一致。
在 Rust 中,Result 和 Option 是两个非常重要的枚举类型,它们分别用于处理可恢复的错误和表示值的缺失。这两种类型都是 Rust 通过类型系统来增强错误处理的核心工具。掌握它们的使用可以帮助开发者编写更安全、更可靠的代码。
Rust 的错误处理机制与其他语言有很大的不同,它通过类型系统来帮助开发者处理错误,尽量避免运行时错误。Rust 的错误类型被分为两类:可恢复错误和不可恢复错误。这两类错误是通过 Result 和 panic! 两种机制来处理的。
在 Rust 中,闭包和高阶函数是非常重要且强大的概念,它们使得 Rust 在处理函数式编程风格时非常灵活。闭包是可以捕获其环境中变量的匿名函数,而高阶函数是能够接收其他函数作为参数或返回函数的函数。
在 Rust 中,迭代器是一个非常强大的特性,它允许你以一致的方式访问集合中的元素。Rust 的迭代器是懒惰的,这意味着它们不会立即执行,而是会在需要时按需计算。这使得迭代器非常高效,特别是在处理大型集合时。
Rust 提供了一些强大的标准集合类型,用于存储和操作不同类型的数据。常见的标准集合包括 Vec、HashMap、String 等,这些集合是 Rust 标准库中的核心组成部分,能够高效地处理动态数据结构。下面,我们将逐一介绍这些常用的数据结构。
在 Rust 中,模式匹配(match)是语言的一个核心特性,它可以非常强大地配合结构体和枚举类型一起使用。通过模式匹配,Rust 提供了一种简洁且安全的方式来解构复杂的数据类型,从而执行相应的操作。结合结构体和枚举进行模式匹配,可以让我们编写出非常简洁且功能强大的代码。
在 Rust 中,枚举(enum)是一个非常强大的工具,它允许我们定义一种类型,该类型的变量可以是多个不同类型中的一种。与其他语言中的枚举不同,Rust 的枚举不仅可以存储简单的值,还可以存储附加的数据,甚至是不同类型的数据。这使得枚举在许多场景下非常灵活和有用。