专业书籍精读 · System Design Interview 卷一 · 第 16 章

学习的延续

System Design Interview Vol 1 · Ch 16 · Alex Xu · 2020

EN →

这一章讲什么?

你手上这本书,前面十五章教的都是同一件事:面试官说「设计一个微信」「设计一个 YouTube」,你怎么在白板前当场把它画出来。最后一章突然不教题了。它给了你一份清单——真实公司自己写下来的、「我们这套东西到底是怎么搭的」那类文章,外加几十家公司的技术博客地址。然后说了一句:接着读下去。

打个比方

你照着一本菜谱练了十二道菜,每道都练熟了。现在客人点了第十三道,菜谱上没有。你会不会做,取决于你学到的是十二套固定动作,还是「火候怎么看、下锅什么顺序、咸了怎么救」。这一章想把你送进的,是真实后厨:不是干净的菜谱,是有人手忙脚乱临时改方案的现场。

旧世界为什么难

自学搭系统,最难的不是找不到资料,是资料的形状不对。教科书给你干净的原理,练习题给你干净的题面——两边都把最值钱的东西删掉了:当时的限制。真实项目里选了甲没选乙,往往不是因为甲更好,而是因为当时只有三个人、机器就那么多、下个月必须上线。这些在题面上一个字都看不到。

它怎么做到的

办法说穿了很朴素:去看人家写下来的那一份。过去二十年里,大公司养成了一个习惯——把自己踩过的坑写出来公开。不全是因为慷慨:写出来能招到人、能让同行帮着挑毛病、能让自己的做法变成行业里的默认选项。于是有了两类东西。一类是一篇文章讲透一个系统的来龙去脉:我们当初怎么做的、做到多大就撑不住了、后来改成什么、改完付出了什么代价。另一类是公司博客,隔三差五更新一篇,让你不掉队。这一章做的事,就是把这两类东西的入口一次性列给你。

该怎么用

最有效的用法不是从头读到尾——那是读不完的,也不必读完。而是每练一道题,就去找同一个问题的真实版本对一遍:你刚自己设计完一套发通知的系统,就去读某家公司讲他们怎么发通知的那篇,看两边哪里不一样、为什么不一样。不一样的那几处,才是你真正学到的东西。

代价要说清楚:这些文章几乎只写成功了的那一版,中间失败的三次不会写;而且从写下的那天起就开始过时——五年前那份清单里,今天有些链接已经点不开了。

一句话记住

题会做完,清单不会。把「自己练一道题」和「读一个真实系统怎么做的」配成一对,一直重复下去,这一章就算读对了。

想进到具体机制、记号和示意图? → 切到精读版