915 字
3 分钟
编程模式与实践
我写这个系列,是因为自己在工程实践中反复遇到同一类问题:怎么控制并发、怎么管理内存、怎么让系统在故障面前不崩。每次翻资料,发现答案其实早就有了,只是散落在不同领域。React 用位掩码 + 双缓冲做协调,PostgreSQL 用 WAL + MVCC 做事务,Go 用工作窃取 + 对象池做调度。模式是同一批模式,组合方式不同,系统就不同。我想把这些模式从真实系统里拆出来,按场景归类,说清楚每个模式解决什么问题、怎么用、什么时候不该用。
系列预期
- 每个模式从问题场景引入,给出多语言实现(Go/TypeScript 为主,附 Rust/Python),再拿真实项目验证,不是概念罗列
- 模式之间会横向对比(LRU 缓存 vs 对象池、写时复制 vs 双缓冲),帮你在相似模式间做选择
- 这个系列不是 GoF 设计模式的复述,也不是算法竞赛题解,收录的标准只有一个:在真实生产系统中服役过
- 不追求面面俱到,每个模式只讲核心机制和取舍,细节留给参考资料
知识准备
- 至少熟练一门静态类型语言(Go、Rust、Java、C# 均可),能读懂接口和泛型
- 了解基本数据结构:数组、链表、哈希表、二叉树
- 对操作系统有基础认知:进程/线程、虚拟内存、系统调用
- 如果读过某个开源项目的源码(Redis、Go runtime、LevelDB 等),阅读体验会更好,但不是硬性要求
推荐书目和教程
- Designing Data-Intensive Applications - Martin Kleppmann, 2017,分布式存储与数据系统设计,WAL、LSM 树、一致性哈希等模式的工程背景来源
- A Philosophy of Software Design - John Ousterhout, 2018,软件设计的复杂性管理,与设计原则篇直接相关
- Systems Performance - Brendan Gregg, 2020,系统性能分析,内存管理和并发模式的实践背景
- The Art of Multiprocessor Programming - Herlihy & Shavit, 2012,并发数据结构与算法,RCU、SeqLock、工作窃取的理论基础
- Crafting Interpreters - Robert Nystrom,解释器实现,虚函数表、访问者、迭代器等行为型模式的鲜活案例
项目目录
质量工程
内存管理
数据结构
并发模式
系统可靠性
行为型模式
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
部分信息可能已经过时
相关文章 智能推荐
1
舱壁模式(Bulkhead)
程序设计 资源隔离舱,防止故障扩散,线程池隔离和服务降级的物理保障
2
控制面与数据面分离(Control Plane / Data Plane)
程序设计 管理面与数据面分离,K8s、Istio、云原生架构的标配设计
3
Saga 模式(Saga Pattern)
程序设计 长事务拆分为多个本地事务 + 补偿回滚,分布式订单和跨服务事务的解决方案
4
弱引用与引用强度(Weak / Soft / Phantom Reference)
程序设计 不同强度的可达性,配合 GC 实现缓存和资源清理,从强引用到虚引用的完整谱系
5
Thread-Local Storage 线程本地存储(Thread-Local Storage)
程序设计 每个线程私有数据,消除竞争,连接池、随机数生成器的基础机制






