<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KVGHS6G" height="0" width="0" style="display:none;visibility:hidden"></iframe>
系统设计常见流程❗️完善系统设计流程❗️
系统设计常见流程❗️完善系统设计流程❗️
篱笆资讯
系统设计常见流程❗️完善系统设计流程❗️
大家好我是篱笆老师zhen。那在这节课让我们来继续分析系统设计的常见流程,上节课我们已介绍了系统设计的常见流程的前3步第一步是clarification、第二步是requirement analysis、第三步是cost estimate。
 
大致流程就是我们从user开始,然后user它可能会make request,到几个low balancer或者是API Gateway,然后我们API Gateway或者low balancer会把这几个request distribute到很多个不同的Server上。这些server它可能会跟backhand或者是跟数据库做一些interaction
这是一个大概的flow,但是具体会有很多variation,会有很多变化所以说我们后面再看。那我们等到把这个整体的这个流程图画完了以后其实可以算是一个milestone,就是我们这个小design,System design的一个milestone。到这里可以说是已经完成了一些基本的需求,然后之后有两点我们需要着重强调一下。
 
首先第一点是API design。就是说我们这个API是我们这个系统怎么和我们的user进行interact。API主要有两类,一类是RPC、一类是rest,我们后面也会讲。但是这个API design也非常重要,因为它规定的是我们怎么去和用户之间进行交流。那API design完了之后呢我们会着重强调一下DATABASE design,因为不管是什么样的系统,我们的系统肯定都会存储一些数据,既然要存储数据的话那这个数据库的选型非常重要,那大家都知道那数据库现在分为很多类,比如说SQL、NoSQL、OLTP、OLAP,怎么样选择不同种类的数据库然后这也是一个非常重要的topic。
 
当我们把这两点聊完了以后,那正常情况下系统设计时间应该以上没有,但是如果你的能力非常强,比如说你还有一些时间你可以有两种选择,一种选择你可以去wrap up整个topic,你比如说再跟面试官强调一下我们为什么选择NoSQL而不是SQL,然后为什么需要low balancer,然后如果load的很大的话我们怎么去scale我们这个system,这是一种选择。那还有一种选择你可以聊一些其他的一些东西,比如说怎么去做monitoring,然后怎么improve我们的system,让它更加的secure,或者是比如说会有一些disaster recovery上的一些考虑,或者一些其他的一些as on,这些就是也是一个很好的一个topic,那我们在做完整个流程之后,然后这才算完成了一个系统设计。
 
如果有工作经验的小伙伴其实能发现,这个跟你在公司写design doc,然后做design或者做presentation,其实非常相似。所以说里面有很多很多需要注意考虑的点,我们之后一起来看一下,这些常见的一些系统设计的题目,那以上就是系统设计的一些通用流程了。
 
在下节课,我们准备通过一个比较简单的一道例题,来大家真正感受一下系统设计的成功套路,如果大家喜欢这个系列呢,欢迎评论转发design这个系列,让我们一起把它变得更好那我们下节课再见了拜拜!
coffee 直连行业大牛导师,1v1模拟面试与求职指导
mentors
airplay 实战与求职精品课程
数据科学
软件工程
人工智能
金融商科
产品经理
产品设计
bookmark 2000+名企面试真题
amazon google tiktok microsoft meta