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

系统设计面试框架

System Design Interview: An Insider's Guide · Vol 1 · Ch 3 · Alex Xu · 2020

EN →

这一章讲什么?

请设计师来装修房子,靠谱的那位不会张口就说「我给你铺大理石」。她先问:几口人住?孩子多大?养不养猫?预算多少?在家做饭多不多?——问完这些,方案才有意义。这一章讲的就是工程师版的这套问法:面对一道故意问得很含糊的大题,怎么用一套固定的顺序,把它变成一道能做的题。

先说个怪事

这是全书唯一一章不讲任何技术的章。没有缓存,没有数据库,一个组件名都不出现。可它偏偏是决定成败的那一章。因为这种考试从来不是比「谁的答案对」——题目根本没有标准答案。它看的是:把一件谁也没想清楚的事交给你,你能不能一步步把它收拾成一个方案。

旧世界为什么难

最常见的失败长这样:题目一念完,人就开始答。因为紧张,因为怕冷场,因为觉得答得快显得聪明。

问题是,他答的往往不是这道题。没问清楚就动手,等于花四十分钟做了一道自己脑补出来的题。做得再漂亮也没用——对面从头到尾在想同一件事:你为什么不先问一句?

另一种失败正好反过来:一直在讲大格局,一个细节都不肯落地。看着面面俱到,可对方想听的那句「这块具体怎么做」始终没等到。

两种毛病是同一个:没有顺序。

核心机制:四步

① 先问。这个东西给谁用、要有哪几个功能、大概多少人在用、要多快。问清楚了,才知道要做的是一辆自行车还是一列火车——这两件事没有任何共同做法。

② 先画粗的,并且征求对方同意。拿几个方框把大结构摆出来:数据从哪进来、经过谁、存在哪、怎么出去。然后停下来问一句「这样走,你觉得行吗?」。这一停很关键——得到点头再往下,才不会在错的方向上越走越远。

③ 挑最要紧的那一两块,往深里挖。不是每块都挖,时间不够,也不是重点。对方最想看的通常就一两块,挑出来,把里面的门道讲透:怎么做、为什么这么做、代价是什么。

④ 收尾。花最后几分钟说清楚:这套东西哪儿最先撑不住、坏了怎么办、上线之后靠什么盯着它、用的人再多十倍要改哪里。

该怎么用它

贯穿四步只有一条纪律:把想的东西说出声。对方看不见你脑子里的东西,你沉默的那两分钟在他那里就是一片空白。连犹豫都该说出来:「我在两种做法之间摇摆,一个省钱一个快,我倾向后者,因为……」——这句话本身就是分数。

诚实说一句代价:这套顺序只保证你把话说清楚,它替代不了你真的懂那些东西——框架能让一个懂行的人正常发挥,不能让一个不懂的人蒙混过关。

一句话记住

考的不是你最后画的那张图,是你怎么从一句含糊的话走到那张图。先问清楚,再画粗的并取得同意,然后挑一两块挖透,最后留三分钟收尾——全程说出声。

想进到具体机制、时间预算和示意图? → 切到精读版