跳到正文

目录

ByteByteGo system-design-101 资源地图:15 个主题、400 篇系统设计图解

ByteByteGo system-design-101 资源地图

ByteByteGoHq/system-design-101 是一份可以读的系统设计图解合集。data/guides/ 里存放 400 篇图文说明:正文文字在仓库内直接可读,配图托管在 CDN;README 由脚本生成,把 400 篇按 15 个分类整理成目录,每篇都同时指向 bytebytego.com/guides 的在线版本。截至 2026-08-29,仓库拥有 87.7k stars、9.8k forks,自 2023-09-18 创建以来一共只有 25 次提交。分类与索引是它最常被用到的价值,但正文并不在仓库之外——只是每篇篇幅短,深度有限。

把它当一张地图读,价值在于回答三个问题:系统设计有哪些主题、每个主题下有哪些图解、按什么顺序读。它是面试准备的主题地图,不是实现参考。

目录

  1. 仓库结构:数据驱动的清单生成器
  2. 15 个主题分类
  3. 一个具体场景:从 URL 到渲染完成
  4. 与同类资源的对比
  5. 怎么用这份资源地图
  6. 适用边界
  7. 常见问题
  8. 读完自测

仓库结构:数据驱动的清单生成器

仓库的构成很精简:data/categories/*.md(15 个分类元数据)+ data/guides/*.md(400 篇图文 guide,每篇含 frontmatter 和正文)+ scripts/readme.ts(拼装 README 的脚本,82 行)+ .github/(贡献指南和欢迎工作流)。README 由脚本生成,不靠手动维护。

这张图对应三条设计主线,每条都回答一个"为什么":

  • 数据与生成分离——data/ 目录是单一数据源,scripts/readme.ts 用 gray-matter 解析每个 .md 的 frontmatter,分类按 sort、guide 按 createdAt 排序,拼出 TOC。新增一篇 guide 只需在 data/guides/ 加一个 markdown 文件,README 自动更新。仓库维护者不需要手动编辑那 400 个条目的 README,改数据就行,目录不会和内容脱节。
  • 图片托管在 CDN——data/guides/*.md 的 image 字段指向 https://assets.bytebytego.com/diagrams/0xxx-name.jpg,guide 的配图不存仓库,仓库体积保持在 50 MB 以内(GitHub API 显示 size: 46759 KB)。图片跟着官网走,更新图解时不需要在仓库里改二进制。
  • 贡献走 PR——CONTRIBUTING.md 约定贡献方式:每个 PR 聚焦单一主题,不要跨多个主题改动;发现图解错误时开 issue 而不是直接改图(源图在上游,由维护者修复后统一发布);并明确禁止用 AI 工具生成内容。.github/ 下的工作流只在首次贡献时自动发一条欢迎消息,提醒贡献者遵循指南。

15 个主题分类

README TOC 的顶层 * 一级项就是 15 个分类,按 sort 字段排序。完整的 15 个分类是:API and Web Development、Real World Case Studies、AI and Machine Learning、Database and Storage、Technical Interviews、Caching & Performance、Payment and Fintech、Software Architecture、DevTools & Productivity、Software Development、Cloud & Distributed Systems、How it Works?、DevOps and CI/CD、Security、Computer Fundamentals。

其中 8 个跨方向最常用的分类,各自的典型问题与阅读起点如下:

#分类典型问题候选阅读起点
1API and Web DevelopmentREST vs GraphQL、gRPC、API GatewayThe Ultimate API Learning Roadmap
2Real World Case StudiesNetflix / Uber / Twitter / Airbnb 架构Netflix’s Overall Architecture
3Database and StorageSharding、CAP、B-Tree vs LSM-TreeA Crash Course on Database Sharding
4Caching & PerformanceRedis、CDN、缓存策略The Ultimate Redis 101
5Cloud & Distributed SystemsAWS、可扩展性、12-FactorSystem Design Cheat Sheet
6Software Architecture微服务、DDD、设计模式The Ultimate Software Architect Knowledge Map
7SecurityHTTPS、JWT、OAuth、密码存储Cybersecurity 101
8DevOps and CI/CDDocker、K8s、CI/CDWhat is Kubernetes (k8s)?

分类之间的颗粒度并不均匀:Real World Case Studies 和 How it Works? 偏"看懂真实系统",Database and Storage 与 Caching & Performance 偏"面试必考基础",Technical Interviews 只有 5 篇,更像入口而不是分类。读的时候按自己短板选分类,不必平均分配时间。

一个具体场景:从 URL 到渲染完成

用面试常考的「输入 URL 后浏览器发生了什么」来串仓库的各个分类:

这条路径里每一跳对应仓库的一个分类,但分类规模并不均匀:API and Web Development 有 50 多篇,Database and Storage、Cloud & Distributed Systems 各 40 多篇,Technical Interviews 只有 5 篇。仓库把所有可能的路径铺开,读者自己选。资源地图不替人选路,只告诉路口在哪。

与同类资源的对比

资源内容深度更新频率与 ByteByteGo 的关系
donnemartin/system-design-primer中文翻译版广为流传,原版含较多文字总结和示例代码偶发 PR,节奏慢同属「系统设计面试」主题,但偏向文字 + 代码示例,ByteByteGo 偏向图解
ByteByteGo Books(System Design Interview 系列,已出版多卷)出版级深度,章节成体系纸质书出版后内容固定,出新版才更新仓库中的 Real World Case Studies、System Design Cheat Sheet 与书章节几乎一一对应
ByteByteGo YouTube 频道视频版图解,每周 1–2 期持续更新README 中很多「Top N」「Comparison」类图解来自视频截图
awesome-system-design 等 awesome 列表链接合集,无结构化分类半停滞仓库本身就是一个 awesome list,但只收录 ByteByteGo 的内容

如果时间只够看一份,建议 system-design-101:它是列表里唯一按主题分好类、能当目录用的。system-design-primer 文字多,适合想读完整解释的人;ByteByteGo 书和视频深度更高,但要么收费要么零散,不适合当索引。awesome 列表的问题是分类粗、没人维护,检索效率低。

怎么用这份资源地图

  1. 先看 Technical Interviews ——只有 5 篇,里头有 How to Ace System Design Interviews 和 Recommended Materials for Technical Interviews,相当于总入口。
  2. 再按薄弱分类深入——比如数据库弱就进 Database and Storage 一次刷完,从 Types of Databases 到 8 Data Structures That Power Your Databases 串起来。
  3. 最后用 Real World Case Studies 做交叉验证——同一类问题在 Netflix / Uber / Pinterest / Figma 的真实架构里怎么落地,能补足纯图解容易缺的真实工程权衡。

先总入口、再单点深入、最后用真实案例串,是这张地图最自然的读法。具体到一次面试准备,可以按"主题 → 图解 → 复述"三步走:确定这周补哪个分类,把该分类下的图解按顺序看完,然后合上图解用自己的话把原理讲一遍。图解适合建立"长什么样"的直觉,但要防止只记住图、说不清取舍。

适用边界

  • 适合:准备系统设计面试、需要一份「主题地图」快速定位某个领域该读哪些图解、想把 ByteByteGo 系列的图解按主题组织成学习路径。
  • 不适合:想通过读一个仓库学到分布式系统实现——这不是它的定位。没有代码示例、没有配置教程、没有命令行工具,每篇 guide 只是一张图解加几句说明,图文在仓库和官网都免费可读,但深度有限。要成体系的内容,得另买书籍或课程。
  • 时效性:仓库最后 push 是 2025-04-04,之后没有新提交。把它当作一份历史快照:分类稳定、内容变动少,图解链接或细节需要确认时,以官网为准。

常见问题

Q:为什么 README 里只放链接,不直接贴内容?

因为 README 是脚本生成的目录,不是内容载体。内容在 data/guides/ 里每篇一个 markdown 文件,正文可读、配图走 CDN;README 只负责把 400 篇按分类排成清单,方便扫读。每篇同时给出官网链接,是因为官网的在线版本排版更好、更新更快。

Q:想给仓库加一篇图解,流程是什么?

按 CONTRIBUTING.md 走:PR 聚焦单一主题,不要跨多个主题改动;发现图解错误时开 issue,不要直接改图——源图在上游,由维护者修复后统一发布;明确禁止用 AI 生成内容。合入后 scripts/readme.ts 自动把新条目排进 TOC,不需要手动改 README。

Q:图片在仓库里搜不到,正常吗?

正常。image 字段指向 assets.bytebytego.com 的 CDN,仓库只存 URL 不存二进制,所以仓库体积才能保持在 50 MB 以内。这也意味着离线时看不到图,图解依赖官网可达性。

Q:仓库很久没更新,是不是没人维护了?

不是没人维护,是结构决定它不需要频繁 push。data/ 只在有新增 guide 时变化,现有内容也很少改动,所以 commit 频率低不代表内容陈旧。判断内容新旧,看官网每篇标注的更新时间比看 commit 更直接。

Q:只看这个仓库能过系统设计面试吗?

不能。它提供的是入门级图文速览,不是"为什么这么设计"的深度。真正的准备需要配合 System Design Interview 系列书籍(Alex Xu 著)或 system-design-primer 的完整文字解释,再用图解做速查。地图替代不了走路,但它能告诉你路在哪。

读完自测

不看正文,试着回答下面几个问题:

  1. 这个仓库的三条设计主线分别解决什么问题? 数据与生成分离、图片 CDN 托管、贡献走 PR,各自避免哪种维护上的坑?
  2. 15 个分类里,哪几个是面试高频、哪几个偏科普? 你能说出 Technical Interviews 和 Real World Case Studies 定位的差别吗?
  3. “从 URL 到渲染完成"这条路径串了哪些分类? 换一个问题(比如"设计一个 URL shortener”),你会走哪几个分类?
  4. 为什么不推荐用这个仓库学系统设计实现? 它的内容形态(图解加简短说明、无代码示例)决定了它适合什么、不适合什么?

答得上来,说明你把它当目录用对了;答不上来,回去看对应的章节。

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。