📌 项目地址:donnemartin/system-design-primer | ⭐ 362,658 颗星 | 🔧 Python | 📜 未标注
这是个文档仓库,Python 标签别当真
仓库地址:https://github.com/donnemartin/system-design-primer,362,658 颗星。语言标签写着 Python,但主体是 Markdown 文档,真正能跑的 Python 代码只有参考答案里的少量片段。
它对准的问题很具体:系统设计面试。很多科技公司的技术面试里,系统设计和编码面试并列,是必考环节。这方面的资料网上不缺,工程博客、论文、问答散落各处,缺的是顺序。README 自己的定位是 “an organized collection of resources to help you learn how to build systems at scale”——把散的资料排成一条能走的路径。
仓库里到底有什么
README 列出的内容:
- Study guide:学习路径,把各章节串成一条线
- How to approach a system design interview question:答题框架
- System design interview questions, with solutions:带参考答案的系统设计题,答案含讨论、代码和图表
- Object-oriented design interview questions, with solutions:带参考答案的面向对象设计题
- Additional system design interview questions:无答案的题目,自测用
- Anki flashcard decks:间隔重复闪卡
一个容易看漏的设计:带答案的题和无答案的题是分开的。前者用来学,后者用来验证。学完之后怎么判断自己行不行?独立走完无答案题目的完整设计流程。
答题框架是核心资产
系统设计面试通常 45 分钟一轮。没框架的人容易卡死在某个细节——在缓存策略上纠缠太久,架构图没画完就到时间了。
“How to approach” 一节给出一套操作顺序。每一步单看都平常,组合起来的价值在于:任何时候你都知道自己在第几步、下一步该做什么。
我的建议是把这个框架抄在卡片上,模拟面试时放手边。练几轮之后它会变成本能反应,不用再翻。
参考答案怎么用
带答案的题包括设计 Pastebin、网页爬虫这类经典题。系统设计没有标准答案,参考答案的价值不在结论,在取舍过程:为什么这里用消息队列而不是同步调用,为什么引入缓存而不是直接扩数据库。这些推理值得逐句对照。
我试过的流程:
- 挑一道带答案的题,限时 45 分钟自己写一版
- 打开参考答案对照,重点找漏掉的步骤
- 练完几轮后,把 Anki 卡片加进日常,每天定量刷
第三步解决的是概念遗忘。CAP 定理、一致性协议这类东西,读的时候觉得懂了,两周后只剩模糊印象。概念不在脑子里,答题框架跑到一半会卡住。
两个提醒
翻译版本滞后。 README 列了十几种语言版本,简体和繁体中文都在,翻译由社区维护,每种语言对应一个 issue。更新节奏和英文主仓库不同步,能读英文就读英文。
先走 Study guide。 它解决“从哪开始”的问题,比直接翻主题列表效率高。
别通读
36 万星对应的不是一篇值得通读的文档,而是一套训练流程:背框架、限时做题、对照答案找缺口、Anki 巩固。系统设计能力长在限时输出和复盘里,不在通读文档里。