在线书架 / BOOKS

电子书籍

从第一章开始,把知识读成体系。

按领域与学习阶段整理的在线电子书与创作手记。覆盖 Rust、Lua、TypeScript、Python、Java(Spring Boot)、Go 与游戏开发、文学创作,从阅读指南进入,或按全书目录查找章节。

了解阅读方式
已收录书稿
23部
可读章节
1095篇
阅读领域
8类

4 部书稿

Rust

从所有权与借用,到工程实战与系统编程。

3 部书稿

Lua

从脚本基础,到语言机制与游戏业务。

2 部书稿

游戏开发

从客户端引擎,到服务端架构与完整项目。

3 部书稿

TypeScript

按入门、实战、高级三步,建立类型与工程能力。

3 部书稿

Python

从语言基础与工程交付,深入 CPython 与性能优化。

3 部书稿

Java

从 Spring Boot 入门与工程实战,到框架内部机制与版本迁移。

4 部书稿

Go

从语言入门到工程实战,再到高级特性与运行时原理。

1 部书稿

创作与写作

一部长篇科幻小说的创作过程与长期写作经验。

如何阅读

这些电子书以网页章节形式在线阅读。每个系列围绕一个完整主题编排,技术书稿与创作手记按领域分别收录。

《Spring Boot 入门 / 实战 / 高级》三部曲已全部上线(入门 61 篇 / 实战 55 篇 / 高级 34 篇,共 150 篇)。《Go 语言编程入门 / 实战 / 高级 / 运行时原理》四卷本已全部上线(入门 61 篇 / 实战 55 篇 / 高级 34 篇 / 运行时原理 30 篇,共 180 篇)。《Python计算机图形学入门》的目录篇仍为草稿。

按更新时间浏览所有章节 · 第 30 / 55 页
typescript

《TypeScript编程入门》10.2 模板字面量类型

本节讲解模板字面量类型如何把字符串拼接搬进类型系统:用反引号加 ${} 构造字面量模式,与联合类型组合时自动展开成笛卡尔积,配合 Uppercase 等内置工具与 infer 实现字符串解析、Trim、Split、Replace 等递归算法。最后落到类型安全的事件名、路由参数与 i18n 键三个真实场景,并说明贪婪匹配、无法反向推断与编译性能这三类坑。

7 分钟阅读
TypeScript TypeScript编程入门 模板字面量类型
typescript

《TypeScript编程入门》10.1 内置工具类型全解

本节把 TypeScript 标准库里的内置工具类型逐个拆开:从对象修饰的 Partial、Required、Readonly,到集合运算的 Pick、Omit、Exclude、Extract,再到函数与异步相关的 ReturnType、Parameters、Awaited。我们用第 9 章的映射类型与条件类型手写它们,讲清浅层修饰与 Omit 键不受约束这两个常见坑,并给出分组速查表。

7 分钟阅读
TypeScript TypeScript编程入门 工具类型
java

《Spring Boot 入门》1.1 定位、生态与它解决的问题

本节以一支准备把老系统重构为 Spring Boot 的团队为引子,先用真实的 web.xml 与 applicationContext.xml 展示传统 Spring 的配置负担,再拆解 Spring Boot 的三条核心主张——约定优于配置、起步依赖、内嵌容器,讲清它解决了什么、没解决什么,并梳理 Spring 生态的分工。读完你能判断一个项目该不该上 Boot。

8 分钟阅读
Spring Boot Spring Boot 入门 框架定位
typescript

《TypeScript编程入门》9.3 条件类型与 infer

本节讲解类型运算的最后一块拼图:条件类型 T extends U ? X : Y 如何充当类型层面的 if/else,分布式条件类型在联合类型上的展开规则,以及用方括号包裹阻止分发的技巧。随后深入 infer 关键字,演示如何从函数签名、数组、元组和 Promise 中提取类型,并手写 Exclude、ReturnType 等工具类型的实现。读完你能看懂类型库的黑箱签名,并规避 never 陷阱。

6 分钟阅读
TypeScript TypeScript编程入门 条件类型
typescript

《TypeScript编程入门》9.2 映射类型与键重映射(as)

本节讲解映射类型:如何用 [K in keyof T] 遍历一个类型的所有键并批量生成新类型,如何用 readonly 与 ? 的加减号增删修饰符,以及 TypeScript 4.1 引入的键重映射 as 如何借助模板字面量类型改写键名、借助 never 过滤掉不需要的键。本节会手写 Partial、Readonly、Required 等工具类型的内部实现,读完你能为自己的项目定制专用工具类型。

6 分钟阅读
TypeScript TypeScript编程入门 映射类型
typescript

《TypeScript编程入门》9.1 keyof·typeof 与索引访问类型

本节讲解 TypeScript 类型编程的三块基石:用 keyof 取出对象类型的全部键名,用 typeof 从运行时值反向推导类型,用索引访问类型 T[K] 精确取出某个属性或数组元素的类型。三者组合出的 keyof typeof 是工程中最常见的写法,能让类型与实现保持单一数据源。本节配有可运行示例与真实报错信息,读完你能读懂类型库中的索引写法,并为映射类型与条件类型打下基础。

7 分钟阅读
TypeScript TypeScript编程入门 keyof
python

《Python编程入门》9.1 类型注解语法与 pyright / mypy

类型注解是 Python 静态分析的地基,运行时却几乎不做任何检查。本节从「写了 int 传 str 也能跑」讲起,梳理 Optional、Union、内置泛型、Literal、Final、Annotated 等语法,厘清 Any 与 object 的边界,再用 pyright 与 mypy --strict 在真实文件上跑出检查结果,并说明注解在运行时如何被读取、3.14 起为何默认延迟求值。

7 分钟阅读
Python Python编程入门 类型注解
typescript

《TypeScript编程入门》8.3 泛型在接口·类·函数中的协同

本节把泛型从函数扩展到接口与类,讲清三者各自声明类型参数的位置与作用域,解释为什么静态成员不能用类的类型参数,并给出「类级类型参数还是方法级类型参数」的选择标准。随后用类型安全仓储、泛型事件总线、链式 Builder 三个实战把接口、类、函数串起来,配常见报错速查,完成从会用泛型到会设计泛型抽象的过渡。

8 分钟阅读
TypeScript TypeScript编程入门 泛型接口
typescript

《TypeScript编程入门》8.2 泛型默认值与类型推断

本节讲清泛型默认值的语法、求值顺序,以及默认值必须满足约束这条硬规则。随后系统梳理类型推断的四个来源与优先级,解释为什么 TypeScript 至今不支持部分推断、如何用柯里化绕过,并介绍 TS 5.0 的 const 类型参数如何保住字面量精度。最后用可配置的请求封装串起全部知识点,给出常见推断失败场景与修法。

8 分钟阅读
TypeScript TypeScript编程入门 泛型默认值
typescript

《TypeScript编程入门》8.1 泛型约束(extends)

本节承接泛型函数入门,讲清为什么裸泛型在函数体里几乎什么都做不了,以及 extends 关键字如何把类型参数收窄到满足特定形状的类型。内容覆盖对象形状约束、keyof 与索引访问组合约束、一个类型参数约束另一个、交叉类型实现多重约束,并解析 does not satisfy the constraint 这类报错的成因与修法,帮助读者从能写泛型进阶到能设计泛型 API。

9 分钟阅读
TypeScript TypeScript编程入门 泛型约束
python

《Python编程入门》8.3 装饰器原理与实战

装饰器本质是函数到函数的高阶函数,@deco 只是 f = deco(f) 的语法糖。本节从最朴素的例子讲起,强调必须用 functools.wraps 保留元信息;再讲带参数的装饰器、类装饰器与实例方法装饰器的差异、缓存装饰器的实现思路与可哈希约束、singledispatch 的类型分派,以及多个装饰器的执行顺序,最后落到鉴权、重试、计时、注册表等真实工程场景。

6 分钟阅读
Python Python编程入门 装饰器
python

《Python编程入门》8.2 生成器进阶:send / yield from 与惰性管道

yield 不只是用来吐出值的。本节从 send() 讲起,说明生成器为什么被称为协程的雏形;再讲 throw() 与 close() 的清理语义、GeneratorExit 为何必须重新抛出、yield from 的委托规则以及它如何取出子生成器的返回值;最后用生成器搭一条读文件、过滤、转换、聚合的惰性管道,说清它比每步生成一个列表省在哪里,并点一句异步生成器为何是另一套东西。

6 分钟阅读
Python Python编程入门 生成器