加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

一步一步设计一个大规模复杂的系统

发布时间:2021-03-25 14:39:05 所属栏目:传媒 来源:互联网
导读:,没有认真准备 SDI 的应聘者,大部分表现不佳,尤其是在 Google,Facebook,Amazon,Microsoft 等顶尖公司的面试,如果表现不及平均水平的候选人,获得获得 offer 的机会非常渺茫。另一方面,良好的面试表现总是会带来更好的回报,或者是更高的职位,或者是

,没有认真准备 SDI 的应聘者,大部分表现不佳,尤其是在 Google,Facebook,Amazon,Microsoft 等顶尖公司的面试,如果表现不及平均水平的候选人,获得获得 offer 的机会非常渺茫。另一方面,良好的面试表现总是会带来更好的回报,或者是更高的职位,或者是更高的薪水,因为这显示了候选人处理复杂系统的能力。

接下来,我们将按以下步骤循序渐进地解决多个设计问题:

第一步:需求澄清

在需求范围内提出一些问题有助于澄清需求。设计问题大多是开放性的,并且没有一个标准答案,这就是为什么要澄清一些具体需求。花费足够时间来定义系统最终目标有助于在面试中获得成功。另外,由于系统设计的面试只有 35-40 分钟的时间,我们应该弄清楚哪些部分需要重点关注。

以设计一个类 Twitter 的服务为例,在开始设计之前应先回答以下问题:

  • 我们服务的用户能否发布推文并关注其他人?
  • 我们是否还应该设计来创建和显示用户的时间轴?
  • 推文中是否包含照片和视频?
  • 我们是仅专注于后端还是前端?
  • 用户将能够搜索推文吗?
  • 我们需要显示热门话题吗?
  • 是否有关于新(或重要)推文的推送通知?

这些问题将决定最终设计的系统长什么样。

第二步:系统接口定义

定义系统期望的接口(API)不仅可以帮助建立预期的接口协议 ,也可以确保我们没有弄错需求。比如类似 Twitter 的服务的接口可能是这样的:

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读