【转】 如何准备System Design的面试

本文介绍了系统设计面试的主要考察点及解题步骤,包括明确需求、高层设计、详细设计及评估计算等方面,涵盖交互、存储与CAP均衡等核心议题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

【转】 如何准备System Design的面试

 

开发一个应用并不是一件难事,但是对应用的整体架构有一个深入的了解确实是一件了不起的事。一般,系统设计面试题都会放在最后来考察 candidate 的更高level的水平。

 

系统设计可以面试官充分地了解 candidate 的全方面的水平。涉及到操作系统,网络,模块化,设计模式,分布式等等系列的问题。面试官只要抓住一点感兴趣的点,就可以很快地了解 candidate 在这个领域的了解和深度。

 

一般系统设计面试题的解法分为四个步骤:

(Step 1),明确需求和规范。这个是最重要的,确保你的目标清晰明确,保证接下来的任务的分解和实施,能够保证实现你的目标。

(Step 2), 描绘出高层次的设计。 在这个阶段还不必去仔细描绘具体的实施细节。只需要将几个大的模块给确定好,就规划出他们之间的交互就行了。

(Step 3),接下来,就可以针对具体的每一个细节模块进行深入的讨论了。

比如,针对Web frontend 如何展示,backend 如何有效的处理user 的请求。

(Step 4),评估和计算。针对不同用户数量级别,不同性能需求的条件,来确定后面的机器硬件配置及数量等支撑条件。

 

其中,系统设计有主要的三个话题:分别是 交互,存储,CAP均衡。

(1), 交互。网络交互,是采用可靠但慢的TCP,还是采用不可靠但快速的UDP。HTTP 是在应用层,并且基于TCP协议。

(2),存储。涉及到关系型数据库,内存数据库和分布式数据库等等概念。 很多问题也不只是只能依靠某一个数据库来解决的。只要设计合理,可以满足条件就行。

(3),CAP均衡。根据CAP定理,在consistency, availability 和 partition tolerance 上的只能达到一张 trade off。

 

来自: http://www.puncsky.com/blog/2016/02/14/crack-the-system-design-interview/

转载于:https://www.cnblogs.com/zhang-yd/p/7289658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值