从底层到架构:系统化计算机思维教材

一套面向Go程序员的计算机科学学习体系,从程序运行原理到分布式系统设计。


快速开始

  1. 第一次来? → 阅读 使用指南
  2. 系统学习? → 跟随 主线路径
  3. 解决问题? → 查看 问题索引

知识地图

本教材采用三层融合架构,同一概念在不同层次都有体现:

                    ┌─────────────────────────────────┐
                    │   理论层 Theory                   │
                    │   "为什么这样设计"                  │
                    │   抽象层次 · CAP定理 · 一致性模型    │
                    └──────────────┬──────────────────┘
                                   │
                    ┌──────────────▼──────────────────┐
                    │   模式层 Patterns                 │
                    │   "怎么解决问题"                   │
                    │   缓存策略 · 分布式锁 · 幂等设计    │
                    └──────────────┬──────────────────┘
                                   │
                    ┌──────────────▼──────────────────┐
                    │   基础层 Foundations              │
                    │   "计算机如何工作"                  │
                    │   编译链接 · 内存管理 · 并发原语     │
                    └─────────────────────────────────┘

基础层 Foundations —— 计算机如何工作

模块内容核心问题
01-程序执行编译→链接→装载→运行源码如何变成运行的进程?
02-内存与地址虚拟内存、内存布局、指针程序的数据存在哪里?
03-并发基础进程线程、goroutine、同步(规划中)
04-IO与网络IO模型、网络栈(规划中)
05-存储基础磁盘SSD、文件系统(规划中)

模式层 Patterns —— 工程问题与解法

模块内容核心问题
一致性Cache-Aside、延迟双删缓存和数据库如何保持一致?
并发控制分布式锁多个节点如何安全地操作共享资源?
可靠性幂等性设计如何保证操作不会被重复执行?
可扩展性负载均衡、分片(规划中)
数据完整性事务、分布式事务(规划中)

理论层 Theory —— 为什么这样设计

文件核心问题
抽象层次的艺术如何理解和运用分层抽象?
一致性模型强一致性、最终一致性到底什么意思?
CAP定理(规划中)
共识算法(规划中)
系统思维什么是跨领域的通用原理?

三层融合示例:缓存一致性

同一个问题,在三个层次分别理解:

问题:为什么数据库和缓存会不一致?

├─ 基础层: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与共识 → 系统思维

详细路径请查看:主线学习路径