Appearance
系统设计学习路线图
基于课程目录下所有资料整理,涵盖系统设计、面向对象设计、API 设计、ML 系统设计等方向。
阶段一:基础准备(2-3 周)
目标:建立系统设计的基本概念和面试框架
系统设计面试框架
- 来源:ByteByeGo-SystemDesignInterview → Ch.2-4
- 内容:从零扩展到百万用户、估算方法(Back-of-the-envelope)、面试框架
非功能性系统特征
- 来源:Grokking Modern System Design → Ch.4
- 内容:可用性、可靠性、可扩展性、可维护性、容错性
抽象与估算
- 来源:Grokking Modern System Design → Ch.3, 5
- 内容:RPC、一致性模型、故障模型、资源估算
补充阅读(Newsletter)
- 2024: From 0 to Millions (Part 1-4), A Crash Course in Networking/DNS
- 2025: Kubernetes 入门、Clean Architecture 101
阶段二:核心构建块(4-5 周)
目标:掌握分布式系统的基础组件
按以下顺序学习,每个组件 2-3 天:
| 序号 | 组件 | 主要来源 | 补充来源 |
|---|---|---|---|
| 1 | DNS | Grokking → Ch.7 | 2024 Newsletter: Crash Course in DNS |
| 2 | 负载均衡器 | Grokking → Ch.8 | 2024: Crash Course on Load Balancers |
| 3 | 数据库 | Grokking → Ch.9 | 2025: SQL vs NoSQL, Database Schema Design |
| 4 | 键值存储 | Grokking → Ch.10 + ByteByeGo Ch.7 | - |
| 5 | CDN | Grokking → Ch.11 | 2025: CDN 详细指南 |
| 6 | 分布式缓存 | Grokking → Ch.16 | 2024: Crash Course in Caching 1-3 |
| 7 | 消息队列 | Grokking → Ch.17 | 2025: Understanding Message Queues |
| 8 | 发布-订阅 | Grokking → Ch.18 | 2025: Messaging Patterns |
| 9 | 限流器 | Grokking → Ch.19 + ByteByeGo Ch.5 | 2025: Rate Limiting Strategies |
| 10 | 一致性哈希 | ByteByeGo Ch.6 | 2025: Consistent Hashing 101 |
| 11 | 序列号生成器 | Grokking → Ch.12 + ByteByeGo Ch.8 | - |
| 12 | 分布式监控 | Grokking → Ch.13-15 | - |
| 13 | 分布式搜索 | Grokking → Ch.21 | - |
| 14 | 分布式日志 | Grokking → Ch.22 | - |
| 15 | Blob 存储 | Grokking → Ch.20 | - |
| 16 | 分片计数器 | Grokking → Ch.24 | - |
阶段三:面向对象设计与低层设计(3-4 周)
目标:掌握 OOD 原则和设计模式,能独立进行低层设计
1. OOP 基础(1 周)
- 来源:Grokking LLD → 002-007
- 内容:封装、抽象、继承、多态
2. OOAD 与 UML(3-4 天)
- 来源:Grokking LLD → 008-015
- 内容:用例图、类图、序列图、活动图
3. SOLID 原则(3-4 天)
- 来源:Grokking LLD → 016-022
- 补充:2025 Newsletter: Mastering OOP with SOLID
4. 设计模式(1 周)
- 来源:Grokking LLD → 023-028
- 内容:创建型、结构型、行为型
- 补充:2025: OOP Design Patterns and Anti-Patterns
5. LLD 实战案例(选 5-6 个,按难度递增)
- 入门:停车场系统 (029-036)、自动售货机 (058-063)
- 进阶:电梯系统 (037-043)、图书馆管理系统 (044-050)
- 高级:电影票预订 (077-083)、国际象棋 (098-103)、酒店管理 (104-110)
阶段四:API 设计(2-3 周)
目标:掌握 API 设计原则,能设计生产级 API
1. API 基础(1 周)
- 来源:Grokking API Design → 0-20
- 内容:延迟与吞吐、Socket/RPC/WebSocket、REST/GraphQL/gRPC 对比、数据格式
2. API 安全(3-4 天)
- 来源:Grokking API Design → 22-30
- 内容:TLS、输入验证、CORS、OAuth、认证授权
3. API 进阶概念(4-5 天)
- 来源:Grokking API Design → 31-47
- 内容:版本控制、限流、幂等性、缓存、Circuit Breaker、监控
4. API 实战案例(1 周)
Search API (56-61) → File API (62-65) → Comment API (66+) → Stripe API (100-105) → Twitter API (106-109) → Uber API (110-113)
阶段五:高层系统设计实战(4-5 周)
目标:综合运用构建块,设计大规模系统
简单系统(每个 2-3 天)
- URL 短链接:ByteByeGo Ch.9 + Grokking Ch.34
- Web 爬虫:ByteByeGo Ch.10 + Grokking Ch.35
中等系统(每个 3-4 天)
- 通知系统:ByteByeGo Ch.11
- 新闻推送:ByteByeGo Ch.12 + Grokking Ch.32
- 聊天系统:ByteByeGo Ch.13 + Grokking Ch.36 (WhatsApp)
- 搜索自动补全:ByteByeGo Ch.14 + Grokking Ch.37 (Typeahead)
- Instagram:Grokking Ch.33
- Quora:Grokking Ch.27
复杂系统(每个 4-5 天)
- YouTube:ByteByeGo Ch.15 + Grokking Ch.26
- Google Drive/Docs:ByteByeGo Ch.16 + Grokking Ch.38
- Google Maps:ByteByeGo Ch.19 + Grokking Ch.28
- Uber:Grokking Ch.30
- Twitter:Grokking Ch.31
- Yelp/近邻服务:ByteByeGo Ch.17 + Grokking Ch.29
- 附近好友:ByteByeGo Ch.18
- 分布式消息队列:ByteByeGo Ch.20
高级系统(每个 5-7 天)
- 监控告警系统:ByteByeGo Ch.21
- 广告点击聚合:ByteByeGo Ch.22
- 酒店预订系统:ByteByeGo Ch.23
- 分布式邮件服务:ByteByeGo Ch.24
- 对象存储 (S3):ByteByeGo Ch.25
- 实时游戏排行榜:ByteByeGo Ch.26
- 支付系统:ByteByeGo Ch.27
- 数字钱包:ByteByeGo Ch.28
- 证券交易所:ByteByeGo Ch.29
阶段六:前沿专题(2-3 周,选修)
目标:了解 GenAI 和 ML 系统设计
GenAI 系统
- 来源:ByteByeGo-GenAIScannedBook (Ch.1-11)
ML 系统设计
- 来源:ByteByeGo-MachineLearning
- 案例:视觉搜索、YouTube 视频搜索、有害内容检测、视频推荐、广告点击预测、个性化新闻推送
经典故障案例学习
- 来源:Grokking → Ch.39 (Facebook/WhatsApp 宕机、AWS Kinesis 中断)
学习建议
- 时间预估:全职学习 10-14 周,兼职学习 5-6 个月
- 每个系统都要练习:需求分析 → 估算 → 高层设计 → 深入设计 → 权衡讨论
- 交叉参考:同一个系统(如 YouTube、Twitter)在 ByteByeGo 和 Grokking 中有不同视角,建议对比学习
- Newsletter 作为轻量补充:每天读 1-2 篇 ByteByeGo Newsletter 文章,保持知识广度
- 输出练习:学完每个系统后,尝试白板独立画出架构图