CS Foundations
CS Foundations
这一部分回答的是“软件为什么能这样运行,以及为什么要这样设计”。内容从单机资源管理与网络通信出发,逐步上升到代码结构、服务边界和分布式系统 tradeoff。
Computer Science Knowledge System
Understand the runtime, then design the system.
操作系统解释进程、内存、文件与 I/O;网络解释服务如何通信; OOD 和设计模式处理代码级结构;系统设计把这些约束组合成可扩展、可恢复的服务。
Operating SystemsComputer NetworksOODDesign PatternsDistributed Systems
From Runtime to Architecture
01Runtime
进程、线程、调度、虚拟内存、文件系统和 I/O 决定单机行为。
02Network
TCP、HTTP、DNS、RPC 与代理决定跨机器通信的语义和成本。
03Software Design
对象、接口、模式和模块边界控制变化如何在代码中传播。
04System Design
容量、存储、一致性、可用性与安全共同决定系统架构。
Knowledge Map
Runtime
Operating Systems
进程、内存、文件、设备、I/O、缓存与内核边界。
CommunicationComputer Networks
从 IP、TCP 和 QUIC 到 HTTP、RPC、DNS、WebSocket 与 CDN。
Object scaleObject-Oriented Design
从需求澄清到核心对象、用例、类图、接口和正确性验证。
Change managementDesign Patterns
识别变化点与稳定点,用创建、结构和行为模式表达协作关系。
Service scaleSystem Design
需求、容量、API、数据、服务、扩展、可用性和演进路线。
Distributed scaleDistributed Systems
复制、一致性、事务、故障与网络分区下的系统取舍。
Choose a Learning Path
A System-Design Answer Should Connect
| 维度 | 必须回答的问题 |
|---|---|
| Requirements | 核心场景、范围、SLO 和不做什么是什么? |
| Capacity | QPS、数据量、读写比、带宽和增长预期是什么? |
| Interface | API、事件和服务边界如何表达业务语义? |
| Data | 数据模型、索引、分区、缓存与一致性如何选择? |
| Reliability | 故障如何检测、隔离、恢复和降级? |
| Evolution | 方案如何从 working solution 演进,而不是一次性过度设计? |
