ByteByteGo system-design-101 资源地图:15 个主题、400 篇系统设计图解
posts posts 2026-06-28T21:13:29+08:00ByteByteGo 系统设计图解的开源合集:15 个主题、400 篇图文 guide,正文文字在仓库内、配图托管在 CDN,README 由脚本生成目录。本文拆解仓库的数据驱动生成机制,给出按主题组织学习路径的方法,并标注这份资源的适用边界。技术笔记面试, 技术写作, 系统设计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 次提交。分类与索引是它最常被用到的价值,但正文并不在仓库之外——只是每篇篇幅短,深度有限。
把它当一张地图读,价值在于回答三个问题:系统设计有哪些主题、每个主题下有哪些图解、按什么顺序读。它是面试准备的主题地图,不是实现参考。
目录
仓库结构:数据驱动的清单生成器
仓库的构成很精简: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: 46759KB)。图片跟着官网走,更新图解时不需要在仓库里改二进制。 - 贡献走 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 个跨方向最常用的分类,各自的典型问题与阅读起点如下:
| # | 分类 | 典型问题 | 候选阅读起点 |
|---|---|---|---|
| 1 | API and Web Development | REST vs GraphQL、gRPC、API Gateway | The Ultimate API Learning Roadmap |
| 2 | Real World Case Studies | Netflix / Uber / Twitter / Airbnb 架构 | Netflix’s Overall Architecture |
| 3 | Database and Storage | Sharding、CAP、B-Tree vs LSM-Tree | A Crash Course on Database Sharding |
| 4 | Caching & Performance | Redis、CDN、缓存策略 | The Ultimate Redis 101 |
| 5 | Cloud & Distributed Systems | AWS、可扩展性、12-Factor | System Design Cheat Sheet |
| 6 | Software Architecture | 微服务、DDD、设计模式 | The Ultimate Software Architect Knowledge Map |
| 7 | Security | HTTPS、JWT、OAuth、密码存储 | Cybersecurity 101 |
| 8 | DevOps and CI/CD | Docker、K8s、CI/CD | What 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 列表的问题是分类粗、没人维护,检索效率低。
怎么用这份资源地图
- 先看
Technical Interviews——只有 5 篇,里头有 How to Ace System Design Interviews 和 Recommended Materials for Technical Interviews,相当于总入口。 - 再按薄弱分类深入——比如数据库弱就进 Database and Storage 一次刷完,从 Types of Databases 到 8 Data Structures That Power Your Databases 串起来。
- 最后用 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 的完整文字解释,再用图解做速查。地图替代不了走路,但它能告诉你路在哪。
读完自测
不看正文,试着回答下面几个问题:
- 这个仓库的三条设计主线分别解决什么问题? 数据与生成分离、图片 CDN 托管、贡献走 PR,各自避免哪种维护上的坑?
- 15 个分类里,哪几个是面试高频、哪几个偏科普? 你能说出
Technical Interviews和Real World Case Studies定位的差别吗? - “从 URL 到渲染完成"这条路径串了哪些分类? 换一个问题(比如"设计一个 URL shortener”),你会走哪几个分类?
- 为什么不推荐用这个仓库学系统设计实现? 它的内容形态(图解加简短说明、无代码示例)决定了它适合什么、不适合什么?
答得上来,说明你把它当目录用对了;答不上来,回去看对应的章节。
参与讨论
使用 GitHub 登录。欢迎补充事实、异议与实践。
讨论暂时无法加载。