mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
852 字
2 分钟
编程模式与实践
2026-06-13

编程模式是前人在大量工程实践中提炼出的可复用解决方案。和教科书上的 GoF 设计模式不同,这里收录的模式都来自真实的生产系统——React、Linux 内核、Go 运行时、PostgreSQL——并且至今仍在服役。

这个系列讲什么#

本系列将编程模式按场景分为七个子系列:

子系列主题篇数
设计原则SOLID、DRY/KISS/YAGNI 等代码设计准则1
质量工程测试策略、CI/CD、静态分析1
内存管理堆栈基础、分配器、GC、引用强度等14
数据结构位掩码、Rope、线段树、LRU、B+ 树等14
并发模式信号量、RCU、SeqLock、Channel/CSP 等13
系统可靠性熔断器、Saga、CQRS、Event Sourcing 等19
行为型模式状态机、命令、策略、装饰器、Reactor 等11

学习路径推荐#

前端开发者#

  1. 事件循环 — 理解 JavaScript 的并发模型
  2. 位掩码 — React Fiber 的副作用标志
  3. 观察者 — Redux、EventEmitter 的底层机制
  4. 差异/补丁 — React/ReactDOM 的协调算法
  5. 双缓冲 — React Fiber 的 current/workInProgress 切换
  6. 协作调度 — React 为什么每 5ms 让出主线程

后端/系统开发者#

  1. 熔断器 — 微服务快速失败的保护机制
  2. 限流器 — 令牌桶控制吞吐量
  3. 预写日志 — 数据库崩溃恢复的基础
  4. 一致性哈希 — 分布式缓存的键分布
  5. 指数退避重试 — 网络请求的容错策略
  6. MVCC — 读写不阻塞的并发控制
  7. Saga 模式 — 分布式事务的补偿回滚
  8. 幂等键 — 重复请求安全防护
  9. 舱壁模式 — 资源隔离防止故障扩散

性能/底层开发者#

  1. 内存基础知识 — 堆栈、分配器、GC
  2. Arena 分配器 — 批量分配与释放
  3. Slab 分配器 — 固定大小对象的高效复用
  4. 分代 GC — JVM/V8/Go 运行时的核心机制
  5. RCU — Linux 内核读无锁机制
  6. 工作窃取 — Go 运行时和 Tokio 的调度策略
  7. 环形缓冲区 — 无锁队列的基础

模式时间线#

这些模式横跨 80 多年的计算历史。基础模式非常古老——信号量(1965)、堆(1964)、状态机(1943)已经被实战验证了 60-80 年。大多数”新”模式其实是老模式的组合:React 的协调器(2017)组合了位掩码 + 最小堆 + 协作调度 + 差异/补丁 + 双缓冲——全部发明于 1943 到 1974 年之间。

timeline title 编程模式时间线 1943 : 状态机 1945 : 位掩码 1953 : 双缓冲 1958 : 空闲链表 / 协作调度 1960 : 环形缓冲区 / Arena / 引用计数 / 驻留 1964 : 最小堆 1965 : 信号量 / 脏标记 1966 : LRU 缓存 / 标签联合体 1967 : 虚函数表 1970 : 布隆过滤器 / B+ 树 1971 : 写时复制 1973 : Actor 模型 / 指数退避重试 1974 : 差异/补丁 / 背压 1975 : 迭代器 / 墓碑 1976 : 预写日志 / 检查点 1978 : MVCC / 逻辑时钟 1979 : 观察者 / Merkle 树 1981 : 工作窃取 1989 : 跳表 1994 : 访问者 / 对象池 1996 : LSM 树 1997 : 一致性哈希 2007 : 熔断器

如何阅读#

每篇文章遵循统一结构:

  1. 为什么需要这个模式 — 从问题场景引入
  2. 现实类比 — 用日常生活的例子建立直觉
  3. 核心思想 — 原理讲解与 Mermaid 图
  4. 变体与对比 — 同类模式横向比较
  5. 多语言实现 — Go/TypeScript 为主,附 Rust/Python
  6. 生产验证 — 真实项目中的使用案例
  7. 小结 — 何时用、何时不用
  8. 参考资料 — 延伸阅读

建议先从自己领域相关的模式开始,再按兴趣向外扩展。每个模式都是独立的,不需要严格按顺序阅读。

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

编程模式与实践
https://blog.souloss.com/posts/programming/programming-guide/
作者
Tsukimi
发布于
2026-06-13
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时