两周系统设计面试速成大纲

如果你的时间紧迫,希望短时间提高系统设计实力,那么把这份提纲好好收藏,信息量极其巨大,干货满满。欢迎转载这份提纲,为更多同学们节约搜寻资料的时间。 废话不多说,下面的内容就来帮你在考纲上划划重点。

1. 系统设计集训营

如果你有足够时间,可以报名系统设计集训营,持续五周,通过 32 课时的集训营课程,深度讲解系统设计例题,帮你巩固基础,融会贯通。

随点随听,免费试听 4 课时内容,讲解 Instagram, Whatsapp 两道经典题,给你答题模版,帮你理清答题主次。

爱思系统设计集训营「免费试听」
全网唯一资深面试官级深度的系统设计集训营免费试听课将于美西时间 4/22/2022 6:30pm 开讲。试听课覆盖系统设计考察要点,答题模板以及 Whatsapp 精解。完整课程共32课时,旨在培养扎实的系统设计能力。深挖20道常见系统设计面试原题,提炼面试答题技巧,详解设计图组件,总结分布式系统知识。有效帮你融会贯通,增加你的答题深度广度,让你能够举一反三,从容面对面试官的追问以及新题。

2. 模拟面试

模拟面试可以短时间里最有效地帮助同学们了解面试流程并且提供个性化的进阶建议。有兴趣的同学不要错过爱思备受好评的系统设计模拟面试服务,由作者本人为同学们进行模拟面试,力求给大家带来最真实的系统设计面试体验和最详尽的面试反馈。

爱思系统设计模拟面试服务
爱思创始人罗辑拥有近十年硅谷面试官经验,作为面试官,参加真实面试以及模拟面试分别超过 100 场,为你带来最真实的系统设计模拟面试。好评率 100%,专业帮同学们准备一线大厂面试,已经帮助大量同学拿到大厂 Offer。$399,赠送本站一年会员,价值 $59.99,畅读独家题解,等你来约!

3. 如何答题

资深面试官眼中的系统设计
如果你对系统设计面试还有一知半解,这篇已经帮助过8000名同学的教程一定能帮你答疑解惑。我们这就来聊聊为什么要考系统设计,具体考什么,以及如何作答。

4. 大系统赏析

Google 经典系统赏析 | GFS, Big Table & MapReduce
Google 的三篇经典论文为开源社区同类系统的实现指明了方向,这些开源系统又成为新一代的科技公司系统的重要组成部分。今天我们就来学习这三篇论文,赏析它们的设计之美。
缓存鼻祖 Memcached 内核详解
Memcached 是一个高性能分布式缓存系统。它单一的功能和精巧的设计给了我们系统设计面试中回答 Cache 类设计的完美范本。今天我们看看 Memcached 的内部实现。
一篇看懂流处理平台 Kafka
Kafka 是一款多功能的流处理平台。它不仅支持传统 Message Broker 的本职工作,更加入信息流存储以及实时处理功能,使其非常灵活和使用。对于这个系统设计面试的重要考点,我们今天就带你一篇看懂 Kafka。
如何实现 Message Broker | RabbitMQ 内核解析
Message Broker 就像信息高速公路,在不同系统之间传递着消息,是很多我们耳熟能详的服务中不可替代的一部分。今天我们就通过解析 RabbitMQ 的内核来理解 Message Broker 的一种实现方法及其应用场景。
缓存标杆 Redis 设计赏析
Redis 作为缓存届的招牌,是搭建缓存时的默认选项。它的速度很快,配置选项丰富,是系统设计面试中的系统设计图中的常客。看完这一篇,相信你对 Redis 的功能和设计都会有更深的理解。
分布式系统协调员 Zookeeper
Zookeeper 是一个高性能分布式系统协调服务 (Coordination Service),它采用类似于文件系统的简洁通用的接口,我们可以利用它轻松实现分布式系统同步一类的操作。还在为协调分布式系统而烦恼?今天就教你怎么做个合格的动物园管理员!

5. 例题讲解

Instagram 题解
设计 Instagram 是一道高频题,它涵盖了信息流类设计题的主要考点。看完这篇题解,相信你对设计 Facebook, Twitter 这类的信息流设计都能游刃有余。
Messaging Service 题解
全网最完备中文系统设计题解。教你设计 Whatsapp, Facebook Messenger 以及微信之类的 Messaging Service。
Uber 题解
Uber 和 Lyft 这样的打车软件为我们的出行带来了极大的方便 。今天我们就来看看如何实现一款像 Uber 一样的打车软件。
网络爬虫题解 (Web Crawler)
爬虫是 Google 搜索的核心组件之一,自从互联网诞生初期就帮助我们整理互联网上的资源,解决了信息发现的难题。今天我们来看看如何设计一款高效的网络爬虫。
设计 Netflix 题解
Netflix 作为最大的电影电视剧串流平台,大家对旗下电视剧如纸牌屋和怪奇物语也是耳熟能详。它占据了互联网下载流量的12.9%,超过 Youtube 接近一倍。大家有没有好奇 Netflix 是如何支持如此巨大的下载流量的呢?今天我们就来为你揭开它的神秘面纱。
分布式锁题解
每当我们在分布式系统中想要寻求一致性,我们都离不开分布式锁。很多面试题里我们会在一致性和可用性之间选择可用性。然而,理解分布式锁能帮我们打破思维定式,体验一致性优先的使用场景并剖析其实现方法。
Google 搜索引擎系统设计题解
Google 作为搜索引擎的标杆,帮助用户发现了互联网上无数的精彩。这道系统面试题着重考察同学对信息索引 (Index) 和查询 (Query) 的理解。这篇6000字题解就来帮你深挖小小的搜索框是如何帮我们从茫茫互联网上找到内容的。
Dropbox 云存储服务系统设计题解
Dropbox 是在线文件存储分享服务的代表,它帮助用户随时随地访问存储的文件。它同时方便了不同用户之间的文件分享以及提供追溯文件历史版本的功能。Dropbox 是如何大规模,高性能,高一致性地提供这样服务的呢?这篇4000字题解就来带你探索其中大型分布式系统的搭建,分析从在线存储同步数据流到数据库结构分区等诸多设计要点。
Yelp 系统设计题解
Yelp 是属于吃货的 App。查餐馆时,去看看几颗星,点菜前,查查有什么特色菜。在北美,不管走到哪里,有了 Yelp 不会担心吃不好。Yelp 从系统设计角度上相比传统的分布式系统有很强的地域性,所以 Yelp 的设计与很多强地域性点评类网站有很多共通之处,比如 Trip Advisor, Tinder。这个地域性也会成为这道题的主要考点。
实时监控系统题解
实时监控系统是每一个网络服务的刚需,每个后端工程师都多多少少接触和使用过。这道题主要考察 Streaming Service 的应用,监控系统作为一个 Streaming Service 的经典实例,牵涉到 Streaming Service 上游的 Publisher 和下游的 Consumer 如何合理配置,来实现监控系统所涉及到的种种功能。
Google Doc 系统设计题解
Google Doc 这类的多人在线文档协作系统给我们的日常工作带来很多便利,我们可以很容易地跟同事朋友实时分享并协作编辑文档。在线文档协作系统在简单的文本编辑器的基础上增加的分享协作功能是我们系统设计的核心。我们需要考虑如何设计服务以及存储,使得多人可以在同时修改文档时,所有人可以得到内容相同的文档。
Google Autocomplete/Typeahead 系统设计题解
Autocomplete 又被称作 Typeahead,指用户在搜索框中打字的同时,搜索框进行补全,并给出多个用户可能想搜索的关键词。这个功能使得用户在搜索体验更加顺畅。Autocomplete 主要考察两条数据流,一是如何收集高频搜索关键词,二是如何实时补全用户打了一半的关键词前缀。
System Design 之 Autocomplete - 花花酱 CS大讲堂 EP7
图书推荐: * 操作系统 Operating System Concepts https://amzn.to/2M5PKnD * 算法 Introduction to Algorithms https://amzn.to/2T42fmA * 编程珠玑 Programming Pearls https://amzn...

    URL Shortener Service

    6. 常见取舍讨论

    系统设计常见取舍之一 SQL vs NoSQL
    系统设计中免不了要提数据库设计,数据库设计又离不开 SQL vs NoSQL 的讨论。看完这篇文章,你将学会一步一步有理有据地锁定合适的数据库技术选型。

    7. 基础串讲

    系统设计基础串讲之一 MySQL 数据库的键和索引 (Key & Index)
    数据库设计中除了对需要存储的信息做合理的抽象以外,最重要的就是根据数据特征和查询模式给特定的列加上合适的键或是索引。本文就以 MySQL (InnoDB) 为例,讲解 MySQL 中出现的 Clustered Index, Primary Index, Secondary Index, Unique Index, Composite Index, Foreign Key, Partition Key 和 Sharding Key 都是什么含义,如何挑选合适的列以及数据库内部的实现。
    系统设计基础串讲之二 RESTful API 设计
    API 设计是系统设计的重要组成部分,其中最常用的 API 设计风格就是 RESTful API。面试中虽然大多数人都能把 API 的大致输入输出说清楚,但也不乏有人或是因为违背了 RESTful 设计原则,或是因为 API 没有写成符合业界标准的格式,而导致失分。下面我们就从设计原则,HTTP 标准格式和设计实战经验总结三方面就来教你如何合理设计 RESTful API。

    8. 思考,提问,回答

    在看大纲中的文章或是视频的时候,相信同学多多少少会遇到不懂的地方,不要担心,拿出笔记本把问题记下来,学下去内容会相互印证。 对于那些没有找到答案的地方,想像面试官在面试中问你这个问题,你怎么自圆其说。然后搜索答案,记下笔记。

    这个过程非常关键,很多细节的知识点在两周里很难面面俱到,囫囵吞枣地读很多其实会越发糊涂,难以融会贯通。相反,集中力量把大块的知识点和题目啃下来,好好思考,然后通过提问的方式去补充细节会很有帮助。

    如果还有什么疑惑,请在留言区里告诉我。

    9. 其他参考资料

    System Design Interview – An Insider's Guide: Volume 2 by Alex Xu and Sahn Lam (Affiliate Link)