Skip to content

学习路径

不确定从哪里开始?选一条匹配你目标的路径。每条路径按顺序编排,前面的模式为后面的打基础。

难度说明

每个模式标注了难度等级:

  • 入门 — 单一核心机制,前置知识极少
  • 进阶 — 组合 2-3 个概念,需要一定背景
  • 高级 — 复杂多组件系统,前置知识要求高

路径 1:数据结构基础

从简单的固定容器一路学到自平衡树。

#模式难度核心收获
1Bitmask(位掩码)入门用一个整数装 N 个标志位
2Ring Buffer(环形缓冲区)入门零分配的固定大小 FIFO
3Tagged Union(标签联合体)入门类型标签实现安全分发
4Min Heap(最小堆)进阶O(1) 取最高优先级元素
5Trie(前缀树)进阶O(k) 按键长查找
6Bloom Filter(布隆过滤器)进阶概率性成员检测
7LRU Cache(最近最少使用缓存)进阶哈希表 + 链表组合
8Skip List(跳表)高级概率性有序结构
9B+ Tree(B+ 树)高级磁盘优化的平衡树
10Merkle Tree(默克尔树)高级哈希链完整性证明
11Visitor(访问者)高级将遍历与操作解耦

学完本路径后,你将理解数据库(B+ Tree)、缓存(LRU)和区块链(Merkle Tree)背后的核心数据结构。

路径 2:并发与调度

从基本锁原语到生产级工作分配。

#模式难度核心收获
1Semaphore(信号量)入门基于计数器的并发限制
2Double Buffering(双缓冲)入门两个缓冲区的原子交换
3Observer(观察者)入门订阅/通知解耦
4Event Loop(事件循环)进阶单线程 I/O 多路复用
5Backpressure(背压)进阶生产者/消费者流控
6Copy-on-Write(写时复制)进阶共享直到写入
7Cooperative Scheduling(协作调度)高级让出执行权保持响应性
8MVCC(多版本并发控制)高级版本化读取永不阻塞写入
9Work Stealing(工作窃取)高级空闲线程从繁忙队列偷任务
10Actor Model(Actor 模型)高级隔离状态 + 消息传递

学完本路径后,你将理解 React 如何保持响应性(协作调度)、数据库如何处理并发事务(MVCC)、Go/Tokio 如何调度 goroutine(工作窃取)。

路径 3:系统可靠性

构建优雅应对故障的弹性服务。

#模式难度核心收获
1Retry with Backoff(指数退避重试)入门指数延迟 + 抖动
2Batch Processing(批处理)入门摊销单次操作开销
3State Machine(状态机)入门显式状态,不可能的转换被阻止
4Circuit Breaker(熔断器)进阶服务故障时快速失败
5Rate Limiter(限流器)进阶令牌桶控制吞吐量
6Middleware Chain(中间件链)进阶可组合的请求处理器
7Dependency Graph(依赖图)进阶DAG + 拓扑排序
8Registry(注册表)入门插件发现的自注册机制
9Consistent Hashing(一致性哈希)高级节点变更时最小重映射
10Logical Clock(逻辑时钟)高级无需物理时钟的因果排序

学完本路径后,你将能够设计弹性 API 网关、服务网格和分布式任务调度器。

路径 4:存储引擎内核

理解数据库和存储引擎底层的工作原理。

#模式难度核心收获
1Tombstone(墓碑标记)入门标记删除,稍后压缩
2Dirty Flag(脏标记)入门未变更则跳过重算
3Iterator(迭代器)入门惰性拉取式遍历
4Write-Ahead Log(预写日志)进阶先写日志再应用,保证崩溃安全
5Checkpointing(检查点)进阶定期状态快照
6Diff / Patch(差异/补丁)进阶最小变更计算
7LSM Tree(日志结构合并树)高级写优化的磁盘存储
8Merge Iterator(合并迭代器)高级有序流的 K 路归并

学完本路径后,你将理解 LevelDB/RocksDB 的架构(LSM Tree + WAL + Checkpointing)以及 Git 如何追踪变更(Diff/Patch + Merkle Tree)。

内存管理路径(附加)

面向系统程序员,理解分配器和 GC 替代方案。

#模式难度核心收获
1Reference Counting(引用计数)入门计数归零即确定性释放
2Object Pool(对象池)入门预分配并复用
3Flyweight(享元)入门共享相同实例
4Interning(驻留)进阶基于哈希的去重
5Free List(空闲链表)进阶从释放槽位 O(1) 分配
6Arena Allocator(Arena 分配器)进阶连续分配,批量释放
7Vtable(虚函数表)高级函数指针实现运行时多态

学完本路径后,你将理解 Go 的 sync.Pool、Rust 的 bumpalo 和 CPython 的小对象分配器的工作原理。

建议学习节奏

节奏每天时间全部完成
轻松30 分钟/天~8 周
适中1 小时/天~4 周
集中2 小时/天~2 周

每个模式的建议流程:阅读文档(10 分钟)→ 操作可视化(5 分钟)→ 用一种语言完成练习(15-30 分钟)→ 回答挑战问题(5 分钟)。

提示:Fork 本仓库,使用学习计划中的 checkbox 追踪你的进度。

基于 MIT 许可证发布。