从底层到架构:系统化计算机思维教材
一套面向Go程序员的计算机科学学习体系,从程序运行原理到分布式系统设计。
快速开始
知识地图
本教材采用三层融合架构,同一概念在不同层次都有体现:
┌─────────────────────────────────┐
│ 理论层 Theory │
│ "为什么这样设计" │
│ 抽象层次 · CAP定理 · 一致性模型 │
└──────────────┬──────────────────┘
│
┌──────────────▼──────────────────┐
│ 模式层 Patterns │
│ "怎么解决问题" │
│ 缓存策略 · 分布式锁 · 幂等设计 │
└──────────────┬──────────────────┘
│
┌──────────────▼──────────────────┐
│ 基础层 Foundations │
│ "计算机如何工作" │
│ 编译链接 · 内存管理 · 并发原语 │
└─────────────────────────────────┘
基础层 Foundations —— 计算机如何工作
| 模块 | 内容 | 核心问题 |
|---|---|---|
| 01-程序执行 | 编译→链接→装载→运行 | 源码如何变成运行的进程? |
| 02-内存与地址 | 虚拟内存、内存布局、指针 | 程序的数据存在哪里? |
| 03-并发基础 | 进程线程、goroutine、同步 | (规划中) |
| 04-IO与网络 | IO模型、网络栈 | (规划中) |
| 05-存储基础 | 磁盘SSD、文件系统 | (规划中) |
模式层 Patterns —— 工程问题与解法
| 模块 | 内容 | 核心问题 |
|---|---|---|
| 一致性 | Cache-Aside、延迟双删 | 缓存和数据库如何保持一致? |
| 并发控制 | 分布式锁 | 多个节点如何安全地操作共享资源? |
| 可靠性 | 幂等性设计 | 如何保证操作不会被重复执行? |
| 可扩展性 | 负载均衡、分片 | (规划中) |
| 数据完整性 | 事务、分布式事务 | (规划中) |
理论层 Theory —— 为什么这样设计
三层融合示例:缓存一致性
同一个问题,在三个层次分别理解:
问题:为什么数据库和缓存会不一致?
├─ 基础层:CPU多级缓存如何保持一致? → foundations/02-memory-addressing/
├─ 模式层:延迟双删、Cache-Aside方案 → patterns/consistency/01-cache-aside.md
└─ 理论层:一致性模型与CAP权衡 → theory/02-consistency-models.md
教材特色
- 对话式教学:苏格拉底式提问,先思考再看答案
- Go语言锚点:用Go代码验证每一个概念
- 问题驱动:每个主题从真实场景出发
- 模块化组织:既能系统学习,也能按需查阅
- 三层贯通:底层原理 → 工程模式 → 理论思维
学习路径
阶段一:建立底层认知(2-3周)
程序执行全流程 → 内存与地址 → 并发基础
阶段二:掌握工程模式(3-4周)
一致性问题 → 并发控制 → 可靠性设计
阶段三:构建理论思维(2-3周)
抽象与一致性 → CAP与共识 → 系统思维
详细路径请查看:主线学习路径