📌 项目地址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、网页爬虫这类经典题。系统设计没有标准答案,参考答案的价值不在结论,在取舍过程:为什么这里用消息队列而不是同步调用,为什么引入缓存而不是直接扩数据库。这些推理值得逐句对照。

我试过的流程:

  1. 挑一道带答案的题,限时 45 分钟自己写一版
  2. 打开参考答案对照,重点找漏掉的步骤
  3. 练完几轮后,把 Anki 卡片加进日常,每天定量刷

第三步解决的是概念遗忘。CAP 定理、一致性协议这类东西,读的时候觉得懂了,两周后只剩模糊印象。概念不在脑子里,答题框架跑到一半会卡住。

两个提醒

翻译版本滞后。 README 列了十几种语言版本,简体和繁体中文都在,翻译由社区维护,每种语言对应一个 issue。更新节奏和英文主仓库不同步,能读英文就读英文。

先走 Study guide。 它解决“从哪开始”的问题,比直接翻主题列表效率高。

别通读

36 万星对应的不是一篇值得通读的文档,而是一套训练流程:背框架、限时做题、对照答案找缺口、Anki 巩固。系统设计能力长在限时输出和复盘里,不在通读文档里。

这篇文章对你有帮助吗?

发表回复