q****F 发帖数: 51 | 1 从某做过面试官的业内资深人士处了解到的信息,要是有收获的话给个包子啊。
System Design问题本质上非常庞大,比如Design News Feeds,这种东西没有固定答案
,说七天七夜也说不完,甚至在实际生产中也是根据各种需求换来换去,所以正因为这
个原因,解答没有固定答案。但是怎么评分呢,一个成功的解答需要具备以下几点:
一,全,这个是指能够将整个问题的宏观全局描述下来。也就是类似之前网上发布的
Harvard的System Design视频中画各种圆圈方框的流程图,这里一个load balancer,
那里一个database之类的。
二,深,面试官任意挑一个模块,你要能挖多深挖多深,比如如果你提到consistent
hashing,最好能直接谈到hash函数的选择,比如可以看看Twemproxy里面的具体实现。
再比如你说要用Kafka,你就要能说出为什么Kafka这么快,别的MQ就没有这么快。
三,观察,这里主要是指密切关注面试官的反馈。有的时候面试官对你的设计不满意,
不会直接说出来,甚至说这样应该可以(this should work),其实有可能是他已经对你
放弃了。这也是有些版上的朋友觉得和面试官交流很融洽还是挂了。这一点是我之前没
有听说过的。对于情商高能够察觉到面试官不满的朋友当然简单了,对于情商不够的朋
友,我想了一个对策,就是转守为攻,你就好好搞以上两条,然后对于某个他挑选的模
块你不停的说,不是随便乱说,而是不停地深入,带动他思考,甚至深入到面试官都没
想到过,那你就赢了。这条有点风险,既容易也难,容易是指你可能只需要研究数据库
,就可以不用考虑其他部件,但难也是一个东西的深度往往也是无止境的,所以酌情使
用。 |
x**********a 发帖数: 1372 | 2 我觉得没必要非要提这些kafka吧?那如果没有用过kafka的人岂不挂定了?
kafka不就是一个queuing system,这么多替代品,比如kinesis, eventhub, 我觉得更
加generic最好了。 |
p*****2 发帖数: 21240 | |
y*****i 发帖数: 141 | 4 一上来就往很全的方向答难道不是premature optimization么。。 |