这题系统设计年年考,不拿满分对不起自己

287 阅读4分钟

设计某某系统/ Design XXX System

是系统设计最常见的面试问题

如果被考到Design Twitter

怎样才能让面试官给你打高分呢?

顶尖工程师东邪不请自来

给大家提供满分回答的模板✌

1、首先,询问面试官👇

①需要设计哪些功能?(也可以自己想)  ②需要承受多大的访问量?  ·日活跃用户 Daily Active Users (DAU)  ·Twitter: MAU 330M, DAU ~170M+

2、然后,开始进行功能设计👇

Step 1:Enumerate (说人话:把Twitter的功能一个个罗列出来) • Register / Login• User Profile Display / Edit • Upload Image / Video *• Search *  • Post / Share a tweet• Timeline / News Feed • Follow / Unfollow a user

Step 2:Sort (说人话:选出核心功能, 因为你不可能这么短的时间什么都设计) • Post a Tweet• Timeline• News Feed • Follow / Unfollow a user• Register / Login

3、接着,进行Analysis & Predict

• 并发用户 Concurrent User • 日活跃 * 每个用户平均请求次数 / 一天多少秒 = 150M * 60 / 86400~ 100k • 峰值 Peak = Average Concurrent User * 3 ~ 300k • 快速增长的产品 Fast Growing • MAX peak users in 3 months = Peak users * 2 • 读频率 Read QPS (Queries Per Second) • 300k • 写频率 Write QPS • 5k

4、分析出 QPS 有什么用?

• QPS = 100 • 用你的笔记本做 Web 服务器就好了 • QPS = 1k • 用一台好点的 Web 服务器就差不多了 • 需要考虑 Single Point Failure • QPS = 1m • 需要建设一个1000台 Web 服务器的集群 • 需要考虑如何 Maintainance(某一台挂了怎么办)

• QPS和 Web Server (服务器) / Database (数据库) 之间的关系 • 一台 Web Server 约承受量是 1k 的 QPS (考虑到逻辑处理时间以及数据库查询的瓶颈) • 一台 SQL Database 约承受量是 1k 的 QPS(如果 JOIN 和 INDEX query比较多的话,这个值会更小) • 一台 NoSQL Database (Cassandra) 约承受量是 10k 的 QPS • 一台 NoSQL Database (Memcached) 约承受量是 1M 的 QPS

…………

内容很多,全是干货 几行文字写不下,需要的快来听完 满分应考指南就是它👇

东邪老师只用了两个小时 就把这些系统设计的难题解释清楚了👇

  • 系统设计中常说的 Tradeoff 是什么
  • 什么叫做 SOA (Service Oriented Architecture)
  • 什么是 Pull Model & 什么是 Push Model
  • 数据存储系统有哪些,什么样的数据适合存在什么样的数据存储系统中
  • 什么是异步任务和消息队列 (Message Queue)
  • 什么是数据的可持久化 (Persistent)
  • 什么是去标准化 (Denormalize)
  • 什么是惊群效应 (Thundering Herd)
  • 有哪些与 News Feed 类似的系统设计问题?

面试官很懒,考来考去就这几题

系统设计历来都是大厂招聘“老手”的第一层漏斗。躲不掉系统设计也并非一定是坏事,因为它和算法题一样,喜欢考原题。运气好的,可能几家面试考得都是同一题。

历年原题基本就等于系统设计的题库,不仅大公司考,小公司考系统设计也是考这些。比如前文讲的设计Twitter可谓年年考,准备秋招的小伙伴千万别忘了重点复习。

这个题目我们在系统设计第一节免费试听课有完整的讲述,近期有面试和正在备战秋招的同学一定要去听一下。免费不等于没价值,系统设计的试听课没别的,全是干货

除了经典题目的讲解,系统设计班更多的还是教大家如何在限定条件内展现自己的能力和知识储备,构建一个有细节,有整体框架的work solution

如果你拿到系统设计题经常毫无头绪或是憋出来的perfect solution残缺不全满是漏洞,也一定要来免费试听一下我们的课程。

讲师介绍

适合谁?

  • 无任何算法基础和系统设计基础
  • 只懂一些系统设计的理论知识,缺乏实际应用
  • SD水平不低却无法在面试中展现出来
  • 短期内要参加大厂面试的老鸟

上了这门课,你能👇

免费试听方式

戳我即可试听第一节课

免费试听内容

  • 如何设计Twitter?
  • 怎样回答系统设计问题?
  • 系统设计中常见的问题是什么?