一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 5946|回复: 9
收起左侧

Uber电面(system design)

[复制链接] |试试Instant~ |关注本帖
aiuou 发表于 2015-7-16 09:44:26 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 博士 全职@Uber - 内推 - 技术电面 |Failfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
刚在mitbbs发完,到地里再发一遍。面试题目是system design
之前已经面过2轮拿到了on site,但最初面的那个组招满了。HR说换个组,要加一轮电
面。面试官是国人manager。. From 1point 3acres bbs
电面题目是system design, 设计Imessage. 具体点就是说 如果A 给 B 发一个
message, B如果分别在iphone和mac或其他apple设备上登录,这些设备都可以收到
message。message的数量可以很大,单个message本身也可以很大。.鐣欏璁哄潧-涓浜-涓夊垎鍦

我system design问题准备不足,之前也没想到电面会考这个,说得磕磕巴巴。当时的
想法是先构造3个类,user(client),server,message。user之间通过server传递
message。user(client)有一个client用来接收收到的信息。如果同一个uer有多个设
备登录,这些设备可以在server端的user帐户里注册,然后server把信息分别发给每个
设备。
. from: 1point3acres.com/bbs
user类里面东西也没想太多,一个记录contacts的hashmap 一个message queue, send. more info on 1point3acres.com
,receive function。
message类里面就是sender and receiver的user id,还有一个Sting 表示text

面试官提问如果server 挂了怎么办? 言外之意是不用server这个类,如何实现通信。
这个问题问得我有点蒙,因为我觉得如果server挂了,A怎么才能知道B在几个设备上登
录?犹豫了一会儿,想到以前看过一个设计facebook news feed的题,应该是一个user
登录设备后,通知所有他的contacts,我登录了这个设备。. 1point 3acres 璁哄潧

之前我想的事contacts的hashmap key是string代表名字,value是个int表示id就行了
,按现在的情况要单独设计一个联系人类,里面至少要存放哪些设备登录了。因为
contact也需要有user name, id这些东西,于是我傻B呵呵的把hashmap的 value改成.鏈枃鍘熷垱鑷1point3acres璁哄潧
了user类。然后一想,不对啊,user累里面还有message queue呢,contacts不用这个
。电话那边应该是听不下去了,让我别在电脑上敲了,直接说就思路就行了。. Waral 鍗氬鏈夋洿澶氭枃绔,

然后又问,如果message很多超出你的memory怎么办。我说那就给每个message queue设 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
定一个size,超出就接受不了,同时提醒user清空收件箱。如果可以有server的话,
server给每个user在云端分配大一点的空间。还可以在mesage里面加date参数,收件箱
满了,删最早的。

接下来让我问问题,然后挂了。. From 1point 3acres bbs

评分

5

查看全部评分

David.wx 发表于 2015-8-5 14:35:42 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
Observer Design Pattern?
回复 支持 1 反对 0

使用道具 举报

sqzqkd 发表于 2015-8-5 01:43:38 | 显示全部楼层
关注一亩三分地微博:
Warald
我晕,店面遇到这种题。。。已经无话可说了。。。
回复 支持 反对

使用道具 举报

aiweiwei 发表于 2015-8-7 02:53:52 | 显示全部楼层
uber怎么面试怪怪的,它家是什么风格?
回复 支持 反对

使用道具 举报

ChrisGates23 发表于 2015-8-24 09:00:05 | 显示全部楼层
请问lz面的哪个组
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

tiantiana 发表于 2015-9-8 01:38:06 | 显示全部楼层
这么难的design店面,也是醉了。
回复 支持 反对

使用道具 举报

aiweiwei 发表于 2015-9-10 00:51:38 | 显示全部楼层
好难。求推荐如何提高这方面。。。
回复 支持 反对

使用道具 举报

krist 发表于 2015-10-19 23:26:33 | 显示全部楼层
个人觉得用一个message broker就ok了,比如redis的pub/sub或者kafka。然后一个人的所有设备都subscribe同一个以自己电话号码命名的topic,发message的时候就publish到接收方的topic就好了
回复 支持 反对

使用道具 举报

cx00001 发表于 2016-4-4 11:01:18 | 显示全部楼层
感觉就像是要设计一个pub/sub。。。
回复 支持 反对

使用道具 举报

harryhu0705 发表于 2016-4-17 05:24:55 | 显示全部楼层
我一下想到的是什么pull/push模型,但是感觉好像还是不太合理,我要回去看看九章的课程了
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-3-27 01:22

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表