Skip to content

系统设计学习路线图 ​

基于课程目录下所有资料整理,涵盖系统设计、面向对象设计、API 设计、ML 系统设计等方向。

阶段一:基础准备(2-3 周) ​

目标:建立系统设计的基本概念和面试框架

  1. 系统设计面试框架

    • 来源:ByteByeGo-SystemDesignInterview → Ch.2-4
    • 内容:从零扩展到百万用户、估算方法(Back-of-the-envelope)、面试框架
  2. 非功能性系统特征

    • 来源:Grokking Modern System Design → Ch.4
    • 内容:可用性、可靠性、可扩展性、可维护性、容错性
  3. 抽象与估算

    • 来源:Grokking Modern System Design → Ch.3, 5
    • 内容:RPC、一致性模型、故障模型、资源估算
  4. 补充阅读(Newsletter)

    • 2024: From 0 to Millions (Part 1-4), A Crash Course in Networking/DNS
    • 2025: Kubernetes 入门、Clean Architecture 101

阶段二:核心构建块(4-5 周) ​

目标:掌握分布式系统的基础组件

按以下顺序学习,每个组件 2-3 天:

序号组件主要来源补充来源
1DNSGrokking → Ch.72024 Newsletter: Crash Course in DNS
2负载均衡器Grokking → Ch.82024: Crash Course on Load Balancers
3数据库Grokking → Ch.92025: SQL vs NoSQL, Database Schema Design
4键值存储Grokking → Ch.10 + ByteByeGo Ch.7-
5CDNGrokking → Ch.112025: CDN 详细指南
6分布式缓存Grokking → Ch.162024: Crash Course in Caching 1-3
7消息队列Grokking → Ch.172025: Understanding Message Queues
8发布-订阅Grokking → Ch.182025: Messaging Patterns
9限流器Grokking → Ch.19 + ByteByeGo Ch.52025: Rate Limiting Strategies
10一致性哈希ByteByeGo Ch.62025: Consistent Hashing 101
11序列号生成器Grokking → Ch.12 + ByteByeGo Ch.8-
12分布式监控Grokking → Ch.13-15-
13分布式搜索Grokking → Ch.21-
14分布式日志Grokking → Ch.22-
15Blob 存储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 系统设计

  1. GenAI 系统

    • 来源:ByteByeGo-GenAIScannedBook (Ch.1-11)
  2. ML 系统设计

    • 来源:ByteByeGo-MachineLearning
    • 案例:视觉搜索、YouTube 视频搜索、有害内容检测、视频推荐、广告点击预测、个性化新闻推送
  3. 经典故障案例学习

    • 来源:Grokking → Ch.39 (Facebook/WhatsApp 宕机、AWS Kinesis 中断)

学习建议 ​

  • 时间预估:全职学习 10-14 周,兼职学习 5-6 个月
  • 每个系统都要练习:需求分析 → 估算 → 高层设计 → 深入设计 → 权衡讨论
  • 交叉参考:同一个系统(如 YouTube、Twitter)在 ByteByeGo 和 Grokking 中有不同视角,建议对比学习
  • Newsletter 作为轻量补充:每天读 1-2 篇 ByteByeGo Newsletter 文章,保持知识广度
  • 输出练习:学完每个系统后,尝试白板独立画出架构图