跳到正文

目录

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.tsgray-matter 解析每个 .md 的 frontmatter,分类按 sort、guide 按 createdAt 排序,拼出 TOC。新增一篇 guide 只需在 data/guides/ 加一个 markdown 文件,README 自动更新。仓库维护者不需要手动编辑那 400 个条目的 README,改数据就行,目录不会和内容脱节。
  • 图片托管在 CDN——data/guides/*.mdimage 字段指向 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 StudiesHow it Works? 偏"看懂真实系统",Database and StorageCaching & 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 InterviewsRecommended Materials for Technical Interviews,相当于总入口。
  2. 再按薄弱分类深入——比如数据库弱就进 Database and Storage 一次刷完,从 Types of Databases8 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 InterviewsReal World Case Studies 定位的差别吗?
  3. “从 URL 到渲染完成"这条路径串了哪些分类? 换一个问题(比如"设计一个 URL shortener”),你会走哪几个分类?
  4. 为什么不推荐用这个仓库学系统设计实现? 它的内容形态(图解加简短说明、无代码示例)决定了它适合什么、不适合什么?

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

参与讨论

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