在线书架 / BOOKS

电子书籍

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

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

了解阅读方式
已收录书稿
19部
可读章节
915篇
阅读领域
7类

4 部书稿

Rust

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

3 部书稿

Lua

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

2 部书稿

游戏开发

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

3 部书稿

TypeScript

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

3 部书稿

Python

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

3 部书稿

Java

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

1 部书稿

创作与写作

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

如何阅读

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

《Spring Boot 入门 / 实战 / 高级》三部曲已全部上线(入门 61 篇 / 实战 55 篇 / 高级 34 篇,共 150 篇)。《Python计算机图形学入门》的目录篇仍为草稿。

按更新时间浏览所有章节 · 第 22 / 46 页
python

《Python编程入门》8.1 可迭代协议、迭代器与生成器

很多人把可迭代对象和迭代器当成同一件事,这恰恰是理解 for 循环与生成器的第一道坎。本节先用一张表把两者的协议差异讲透:可迭代对象只需实现 __iter__,迭代器还要实现 __next__ 并在耗尽时抛出 StopIteration。接着展开 for 循环的等价写法、手写迭代器类、生成器函数与生成器表达式的区别、生成器的惰性与一次性,并实测生成器比列表省下多少内存。

6 分钟阅读
Python Python编程入门 迭代器
typescript

《TypeScript编程入门》7.3 类型守卫与控制流分析

本节讲解当数据结构本身没有判别字段时,如何通过运行期检查把联合类型收窄到具体成员。内容涵盖 typeof、instanceof、in 运算符、真值判断与相等比较这几类内置收窄手段,以及自定义类型守卫和断言函数的写法与适用边界。我们还会深入控制流分析的机制,解释为什么收窄在闭包回调里会失效,并给出可落地的规避写法。读完后你能为任意联合类型选择合适的收窄方式,并能在收窄失效时自行定位原因。

8 分钟阅读
TypeScript TypeScript编程入门 类型守卫
typescript

《TypeScript编程入门》7.2 判别联合(Discriminated Unions)

本节讲解判别联合,也就是给联合的每个成员加一个共同的判别字段,让编译器能顺着这个字段自动区分当前处于哪种形态。我们会从「用布尔标志描述状态」的经典痛点出发,一步步重构成判别联合,再用 never 做穷尽性检查,保证新增分支时不会漏处理。你还将看到判别字段的选取原则、与可选字段建模的对比,以及真实项目里常见的踩坑点。读完后你能为请求状态、事件、表单结果这类场景写出可穷尽、可维护的建模。

8 分钟阅读
TypeScript TypeScript编程入门 判别联合
typescript

《TypeScript编程入门》7.1 联合类型与字面量类型

本节先讲联合类型,说明如何用「A | B」表达取值可能是若干形态之一,再引入字面量类型,把具体的字符串、数字、布尔值当作类型使用,从而写出既安全又贴近业务语义的约束。你会看到 let 与 const 在字面量推断上的差异、as const 的实际作用、联合类型成员访问的边界,以及字面量联合与枚举之间的取舍。读完后你能用字面量联合取代散落各处的魔法字符串,为下一节判别联合与类型收窄打好基础。

8 分钟阅读
TypeScript TypeScript编程入门 联合类型
python

《Python编程入门》7.3 上下文管理器与 with

本节讲 Python 的上下文管理器与 with 语句。先说明 with 解决的资源成对获取与释放问题,再拆解上下文管理协议的两个特殊方法、退出方法的三个参数,以及返回真值即吞掉异常的机制;随后用 contextlib 的装饰器把生成器改造成上下文管理器,介绍抑制异常与动态管理多个资源两个工具;最后给出 with 管理多资源时的等价展开,并解释文件、锁、数据库连接为何都该做成上下文管理器。

8 分钟阅读
Python Python编程入门 上下文管理器
python

《Python编程入门》7.2 自定义异常、异常链与错误设计

本节讲如何设计一套可维护的异常体系。先讲自定义异常的写法:继承哪个基类、怎样携带结构化字段、如何重写字符串表示;再讲异常链,用真实回溯区分隐式链与显式链,说明何时该用 from 保留原始错误、何时用 from None 切断噪音;随后给出库作者的异常设计原则,包括定义基类、让调用方能精确捕获、不用异常做正常控制流,以及宽泛捕获后重新抛出的正确姿势;最后介绍警告机制与弃用装饰器。

7 分钟阅读
Python Python编程入门 自定义异常
python

《Python编程入门》7.1 异常层次与 try/except/else/finally

本节讲 Python 的异常机制。先从异常沿调用栈向上传播说起,梳理基类与普通异常的分层结构,解释为什么不要写裸 except、也不该捕获最顶层的基类异常;再用可运行代码演示四段捕获结构的执行顺序、返回值与清理块的交互,以及多重 except 中子类必须写在父类前面的原因。最后介绍异常组与带星号的分支语法、assert 在优化模式下被整体删除的陷阱,以及异常相对返回值的性能代价。

8 分钟阅读
Python Python编程入门 异常处理
typescript

《TypeScript编程入门》6.3 接口实现与 mixin

本节讲解 TypeScript 中类与接口的两条连接方式:用 implements 让一个类同时承诺多份契约,用接口继承接口组合出更大的类型;并系统对比接口、抽象类与类型别名的适用边界。随后进入 mixin 模式,讲清如何用构造器泛型把多个行为混入同一个类,从而绕开单继承的限制,并给出类型安全写法的常见坑。读完本节,你能为复杂业务设计出契约清晰、复用灵活的类结构。

8 分钟阅读
TypeScript TypeScript编程入门 implements
typescript

《TypeScript编程入门》6.2 继承、抽象类与多态

本节讲解 TypeScript 中类的继承与多态:如何用 extends 与 super 复用父类行为,方法重写时 override 关键字和 noImplicitOverride 选项如何防止漏改,抽象类与抽象方法怎样把公共流程固定下来而把差异留给子类,以及多态与里氏替换原则在真实代码中的体现。读完本节,你能用抽象类设计可扩展的骨架代码,并认清继承的代价与何时该改用组合。

8 分钟阅读
TypeScript TypeScript编程入门 继承与多态
typescript

《TypeScript编程入门》6.1 类、访问修饰符与参数属性

本节讲解 TypeScript 的类相比 JavaScript 多出了什么:访问修饰符如何约束成员的可见性,参数属性怎样把构造函数的样板赋值压缩成一行,普通私有成员与井号私有字段又有什么本质差别。读完本节,你能为真实工程里的领域模型写出既安全又简洁的类,并避开严格模式下属性未初始化的常见报错,为后续学习继承与多态打好基础。

9 分钟阅读
TypeScript TypeScript编程入门 类与访问修饰符
python

《Python编程入门》6.1 类、实例与属性查找(MRO)

本节从 class 语句做了什么讲起,厘清 __init__ 是初始化器而非构造函数,实例属性与类属性的区别及可变类属性被所有实例共享的陷阱;再讲方法绑定中 self 的来源、property 与 setter、staticmethod 与 classmethod 的取舍,用 __mro__ 说清属性查找顺序与 C3 线性化,最后用 tracemalloc 实测 __slots__ 的内存收益。

6 分钟阅读
Python Python编程入门 类与实例
typescript

《TypeScript编程入门》5.3 结构化类型与两者取舍

本节回答两个贯穿全章的问题:为什么 TypeScript 只比较类型结构、不比较类型名字,以及 interface 与 type 到底该怎么选。内容涵盖结构化类型(鸭子类型)的判定规则、它带来的「意外兼容」风险、用品牌类型模拟名义类型的工程手法,并给出一份可直接照做的取舍清单与代码评审要点。读完本节,你既能解释类型兼容背后的原理,也能在团队里统一 interface 与 type 的使用规范。

8 分钟阅读
TypeScript TypeScript编程入门 结构化类型
typescript

《TypeScript编程入门》5.2 type 别名、联合与交叉

本节讲解 type 别名的定义方式与它相对 interface 的独有能力:给联合类型、交叉类型、元组、函数、字面量起名字。重点剖析联合类型(这个或那个)与交叉类型(这个并且那个)的语义差别、组合规律与常见陷阱,并用一个状态机模型演示两者如何协同表达业务约束。读完本节,你能用类型精确描述「多种可能」与「多项能力叠加」,并知道何时该用 type、何时该用 interface。

7 分钟阅读
TypeScript TypeScript编程入门 联合类型