在线书架 / 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计算机图形学入门》的目录篇仍为草稿。

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

《TypeScript高级编程》1.3 类型推导算法与上下文类型

本节讲清编译器在没有标注时如何猜出类型。内容涵盖自下而上推断与自上而下上下文类型这两条相反的流水线、字面量拓宽与 as const 的收窄作用、数组最佳公共类型的合并规则、泛型推断候选的收集与合并顺序、回调参数获得类型的条件,以及隐式 any 与循环推导这两类失败的诊断路径。读完你能判断某处该补显式标注还是该改结构,并解释常见推导结果为何与直觉不同。

8 分钟阅读
TypeScript TypeScript高级编程 类型推导
typescript

《TypeScript高级编程》1.2 类型擦除与运行时边界

本节把 tsc 的编译产物摊开看,讲清类型擦除删掉了什么、留下了什么。内容涵盖擦除的基本规则与产物对照、泛型与 instanceof 为何在运行时不可用、as 断言为何不是校验,以及 enum、namespace、类体、装饰器元数据这些必须生成真实代码的例外。读完你能列出运行时可用的替代手段,用类型谓词与判别联合把校验集中在系统边界,并判断 private、readonly 的真实效力。

8 分钟阅读
TypeScript TypeScript高级编程 类型擦除
typescript

《TypeScript高级编程》1.1 结构化类型与兼容性判定

本节把「类型 A 能否赋给类型 B」从直觉变成可复述的规则:先对照名义类型理解结构化类型为何只看成员结构,再拆解可赋值性的判定顺序,涵盖成员存在性、递归兼容、参数逆变与返回值协变,并解释数组协变的历史包袱、any 与 unknown 的特殊行为、private 成员如何让比较退化为名义类型,以及结构化兼容放过 bug 时的品牌类型兜底做法。读完你能独立解读 not assignable 报错。

9 分钟阅读
TypeScript TypeScript高级编程 结构化类型
typescript

《TypeScript编程实战》9.3 定时任务与并发限流

定时任务看似最简单,却最容易在多实例部署下出错。本节先对比系统 crontab、node-cron 与 BullMQ Job Scheduler 三条路径,解释前两者为何在容器多副本下会重复执行;再用 Job Scheduler 与确定性 jobId 解决重复投递;最后讲透并发控制的两层含义——单实例的 concurrency 与跨实例的全局闸,以及 limiter 如何把配额变成硬限制。

8 分钟阅读
TypeScript TypeScript编程实战 定时任务
typescript

《TypeScript编程实战》9.2 重试、幂等与死信

投递成功只是开始,任务失败之后才是真正的工程量。本节先区分可重试与不可重试的失败,讲清 BullMQ 的 attempts、backoff 与 UnrecoverableError 三件套;再解释为什么队列只能做到至少一次投递,从而引出幂等键的设计与两种落地方式;最后给出死信队列的搬移、告警与重放闭环。读完本节,你能让一个后台任务系统在失败面前保持可控,而不是无限重试或静默丢单。

7 分钟阅读
TypeScript TypeScript编程实战 幂等
typescript

《TypeScript编程实战》9.1 BullMQ 队列模型与 payload 泛型

本节从「为什么要把工作丢进队列」讲起,拆解 BullMQ 的 Queue、Worker、Job 三个核心对象及其在 Redis 中的存储结构,再重点解决一个工程痛点:如何用泛型把 payload 类型从生产者贯穿到消费者。你会学到 Queue 的类型参数推导、job name 的字面量联合、判别联合注册表的写法,以及 Date 序列化等常见坑。读完能把队列调用从 any 变成端到端可检查。

7 分钟阅读
TypeScript TypeScript编程实战 BullMQ