如何阅读
- 系统学习:点击「开始阅读」,先了解这本书的学习路径,再按章节顺序通读。
- 查找章节:点击「全书目录」,直接查看分章索引,跳到需要的小节。
- 选择起点:初学者先读入门卷,有基础的读实战卷,研究语言机制的读高级卷或系统编程卷。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
在线书架 / 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 部书稿
一部长篇科幻小说的创作过程与长期写作经验。
这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。
按书架顺序查看各系列的发布状态,展开分卷详情可查看每部书的篇数与目录。
目录篇仍为草稿,发布后开放阅读入口。
用 filepath.Join 拼接用户输入是经典的目录穿越漏洞。Go 1.24 引入 os.Root 把「只能访问某个目录树」做成内核级保证。本节实测相对路径、绝对路径、符号链接三种逃逸全部被挡在 root 之外,并给出 OpenRoot 的 1.24 版本证据与 1.25 方法集扩充(11→23 个方法)的对照。
本节把 ResearchCopilot 落成 monorepo:packages/researchcopilot 是 Python 服务包,packages/web 是 TS 前端包。给出 pyproject.toml 与 package.json 片段,在本机真跑 pytest、node --test、tsc --noEmit 并贴出输出,最后给出 GitHub Actions CI 形态。
本节给 ResearchCopilot 画出四层边界:卷一的 minagent 引擎层、FastAPI 服务层、异步 worker 层、Postgres 加 Redis 的存储层。我们用一张 ASCII 图和一张职责表说清每层管什么、不该管什么,用可跑的检查脚本钉死依赖方向,并完整走一遍一个提问从进来到出结果、跨四层的时序。
本节为 ResearchCopilot 立下 3 个可验收的核心用例:单跳事实问答、多跳研究并输出带引用报告、后台周期 digest。每个用例都给出量化验收标准与落地章节映射,并明确列出不做通用聊天、不做 MCP Server 实现、不做多租户计费这三条边界,把项目范围钉死在可交付的一小块上。
TaskHub 依赖几十个模块,其中任何一个的已知漏洞都可能成为攻击面。本节实测 govulncheck v1.8.0 的三种扫描层级(module/package/symbol),用真实输出说明「模块有漏洞」与「你的代码真的调用了漏洞函数」的区别,并演示它如何顺带产出 SBOM 与 SARIF,接进 CI。
依赖不会永远停在原版本:要升级、要临时指向 fork、要让公司内网的私有仓库能被解析。本节实测 go get -u 与 -u=patch 的差异、replace 指向本地目录的效果,以及 GOPRIVATE/GONOPROXY/GONOSUMDB 三件套如何把私有模块从公共代理里摘出来,附 TaskHub 的升级纪律。
TaskHub 的四个模块各自声明依赖版本,冲突迟早会发生。本节用 x/text 与 x/net 两个真实模块实测最小版本选择的裁决过程:直接要求 v0.14.0 却因间接依赖被抬到 v0.19.0,再演示 go get 强制降级报错、go mod graph 定位引入者、exclude 干预的完整排查链路。
本节讲解服务进程如何正确地「活着」与「死去」:从 SIGTERM 信号处理、连接排空与资源释放的关闭流程,到 liveness、readiness、startup 三类健康检查的语义差异与实现方式。你将学会为数据库、缓存等依赖编写带超时的探活,并把探针与容器、编排系统配置对齐,避免发布期间丢请求或误判重启。
本节讲解 HTTP 服务的横切关注点如何组织:从洋葱模型与 Fastify hooks 的执行顺序,到用 AsyncLocalStorage 建立请求级上下文并贯穿日志与追踪,再到把认证结果类型安全地挂到请求对象上。你将掌握认证、校验、限流、错误收口四类中间件的写法与顺序约束,并学会避免重复执行与上下文丢失两类高频故障。
本节从 Node 原生 http 模块的类型缺口讲起,对比 Fastify 与 Hono 两套框架的路由声明、请求校验与类型推导方式。你将学会用 JSON Schema 与 Zod 让请求参数自动获得类型,用插件与分组路由组织大型服务的路由树,并理解 Web 标准 Request/Response 在边缘运行时上的取舍。读完后你能按部署形态选出合适框架,写出端到端类型安全的接口层。
本节用图书借阅服务的借阅流程,把单元、切片、集成、端到端四层测试的成本与收益逐项拆开,给出各层配比与 CI 分阶段执行命令,并对齐 Spring Boot 4.x 的测试注解口径(@MockitoBean、RestTestClient、@AutoConfigureMockMvc),最后讲清测试并行与上下文缓存的取舍。
图书服务要加一个管理页面,HTML、CSS、JS 与封面图该放哪、用什么 URL 访问?本节讲清 Spring Boot 四个默认静态资源目录及优先级、默认 /** 映射规则,区分 static-locations 与 static-path-pattern,并演示自定义映射、缓存控制与内容哈希指纹,最后说清静态资源与接口路径冲突时谁优先。
给测试体系补上三块短板:用 hypothesis 的性质测试突破手写用例的输入盲区并靠反例缩小定位真实缺陷,用 pytest-benchmark 把性能退化成一道可对比的门禁,用 pytest-cov 的覆盖率与 --cov-fail-under 卡住底线。
单元测试之外的第二层防线:先划清单元与集成的边界,再用 SQLite + fixture 在本机搭出可跑的等价数据层,讲透外层事务加 SAVEPOINT 的用例隔离,最后给出 testcontainers 真实容器环境的配置并明确标注未实测。
把 pytest 从「能跑」推到「可维护」:conftest.py 向上合并与就近覆盖、fixture 作用域与依赖注入、工厂型 fixture 避免共享可变状态,再把约定写进 pyproject.toml,最后用一个本地 conftest 插件和实测插件清单收尾。
本节把 TaskAPI 的 add、list、toggle 抽成真正的函数:先讲函数签名与多返回值为何是 Go 的错误传递方式,再讲命名返回值、可变参数与闭包;随后重点拆解 defer 的 LIFO 顺序和「参数立即求值」这一最容易踩的坑,最后用三个函数重写命令派发器并实测运行。
本节用 TaskAPI 的 list 命令把 Go 的控制流走一遍:if 的初始化语句、for 的三种写法、range 遍历切片与 map 的差异、带标签的 break/continue,以及默认不穿透的 switch 的四种形态;最后把 os.Args 接到一个 switch 派发器上,让 add/list/toggle 真正能跑起来。
本节为 TaskAPI 定义第一个数据结构:先用 var 与 := 的四种写法引出 Go 的零值哲学,再对照列出 bool、string、各类整数、float、byte 与 rune 的取值与默认值,讲清「没有隐式转换」意味着什么;随后用 const 与 iota 给任务状态建模,最后落定 Task 三个字段的类型选择。
本节写下全书的测试基石 FakeModel:一个按脚本列表吐响应的假模型,脚本元素可以是文本、ToolCall 列表或 ModelResponse,它记录每次调用入参、脚本耗尽即抛 RuntimeError。随后用一个极简循环跑通「add 到 mul 再文本收敛」,打印完整轨迹并断言两次运行逐字节一致。
定义内部消息、工具调用与模型响应,提供可直接保存的完整文件,验证纯文本和文本/工具混合消息的序列化往返,并说明静态类型与供应商格式的边界。