一亩三分地论坛

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

扫码关注一亩三分地公众号
查看: 4886|回复: 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。
电面题目是system design, 设计Imessage. 具体点就是说 如果A 给 B 发一个
message, B如果分别在iphone和mac或其他apple设备上登录,这些设备都可以收到
message。message的数量可以很大,单个message本身也可以很大。

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

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

之前我想的事contacts的hashmap key是string代表名字,value是个int表示id就行了
,按现在的情况要单独设计一个联系人类,里面至少要存放哪些设备登录了。因为. 1point3acres.com/bbs
contact也需要有user name, id这些东西,于是我傻B呵呵的把hashmap的 value改成
了user类。然后一想,不对啊,user累里面还有message queue呢,contacts不用这个
。电话那边应该是听不下去了,让我别在电脑上敲了,直接说就思路就行了。
.鐣欏璁哄潧-涓浜-涓夊垎鍦
然后又问,如果message很多超出你的memory怎么办。我说那就给每个message queue设
定一个size,超出就接受不了,同时提醒user清空收件箱。如果可以有server的话,
server给每个user在云端分配大一点的空间。还可以在mesage里面加date参数,收件箱
满了,删最早的。

接下来让我问问题,然后挂了。. more info on 1point3acres.com
-google 1point3acres

评分

5

查看全部评分

David.wx 发表于 2015-8-5 14:35:42 | 显示全部楼层
Observer Design Pattern?
回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

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

使用道具 举报

ChrisGates23 发表于 2015-8-24 09:00:05 | 显示全部楼层
请问lz面的哪个组
回复 支持 反对

使用道具 举报

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, 2016-12-10 01:20

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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