解System Design题是个交流的过程,或者说是给出方案然后获取反馈的不断循环的过程。 一般的流程: 首先你要问清楚requirement; 然后可以讲一下high level architecture,就是分成哪几个component,互相之间如果 interact,在白板上画一画; 之后面试官可能会让你深入某个component detail讨论; 也有可能变换requirement让你重新设计
另外,f家还喜欢让你估算机器之类的,做一些back-of-envelope calculation。所以 最好对一些计算机相关的基本常数,fb的用户量等等有个大概的了解。
准备的时候建议看看fb的design高频题。一方面有可能面试的时候刚好碰到这几个 topic,另一方面其实很多design都是相通的。 之前有个帖子讲这个,原帖已经被删了,这儿有个备份: http://blog.csdn.net/sigh1988/article/details/9790337
另外补充一点我收集的材料
a) 首先你可以从整体上了解一下facebook的architecture
- http://www.quora.com/Facebook-Engineering/What-is-Facebooks-arc
- http://www.ece.lsu.edu/hpca-18/files/HPCA2012_Facebook_Keynote.
- http://www.quora.com/Facebook-Engineering/What-have-been-Facebo
除了下面给出的一些资料,fb engineering page里还有很多不错的内容
b) news feed
-
slides: http://readme.skplanet.com/wp-content/uploads/2012/11/0-3_Faceb
-
discussions: http://www.quora.com/Activity-Streams/What-are-the-scaling-issu http://www.quora.com/What-are-best-practices-for-building-somet http://www.quora.com/What-is-the-best-storage-solution-for-buil
c) facebook chat 这里有两个notes,其中第二个里面还有相应的tech talk links
- https://www.facebook.com/notes/facebook-engineering/facebook-chat/ 14218138919
- https://www.facebook.com/notes/facebook-engineering/chat-stability-and- scalability/51412338919
d) typeahead search & graph search 关于typeahead search的tech talk和notes
- https://www.facebook.com/video/video.php?v=432864835468
- https://www.facebook.com/note.php?note_id=365915113919
- https://www.facebook.com/note.php?note_id=389105248919
关于graph search的paper, tech talk, notes。其中paper很值得一看。
- http://db.disi.unitn.eu/pages/VLDBProgram/pdf/industry/p871-cur
- https://newsroom.fb.com/Photos-and-B-Roll/4362/Graph-Search-Whiteboard
- https://www.facebook.com/note.php?note_id=10151240856103920
- https://www.facebook.com/note.php?note_id=10151347573598920
- https://www.facebook.com/note.php?note_id=10151361720763920
- https://www.facebook.com/note.php?note_id=10151432733048920
- https://www.facebook.com/note.php?note_id=10151755593228920
e) facebook messages 两个tech talks
以及eng notes
- https://www.facebook.com/note.php?note_id=10150148835363920
- https://www.facebook.com/note.php?note_id=10150162742108920
f) photo storage 相关的papers和notes
https://www.usenix.org/conference/osdi10/finding-needle-haystack-facebooks- photo-storage https://www.usenix.org/legacy/events/osdi10/tech/full_papers/Beaver.pdf https://www.usenix.org/legacy/events/osdi10/tech/slides/beaver.pdf https://www.facebook.com/note.php?note_id=76191543919
g) social graph data store 相关的note, video, paper
- https://www.facebook.com/notes/facebook-engineering/tao-the-power-of-the-graph/10151525983993920
- https://www.usenix.org/conference/atc13/technical-sessions/presentation/bronson
- http://www.cs.cmu.edu/~pavlo/courses/fall2013/static/papers/117
h) tiny URL 这里有一些讨论
- http://n00tc0d3r.blogspot.com/2013/09/big-data-tinyurl.html
- http://stackoverflow.com/questions/742013/how-to-code-a-url-sho
- http://stackoverflow.com/questions/3376163/what-are-the-things-
i) POI 参考这里