注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
砖块某Engineer Manager在求职网上Reach Out, 电聊了下感觉这个EM人不错,就决定面一下。无电面,不过昂赛5轮,四轮技术面主考官都是senior,有 2轮shadow的都是staff【下来后发现都是题库里的题】,最后一轮聊天的是另外一个EM。
一: 设计Visa Payment Network。天竺面试官外加一个Staff SE shadow。之前有了解一下刷卡支付会发生什么,所以整体还好(虽然笔者能明显感觉到被刁难,但还好答上来了)。基本上Follow系统设计那一套, 罗列了功能性/非功能性需求。然后算scale,这个要求算出数字的。估算系统量的时候说了两个方法1. 全球人口数 2. 从支持的银行那取数据。面试官让按照全球人口数计算QPS和存储。 正当准备开始讨论大的architecture以及需要啥component的时候,面试官写了个function(def process_transaction),说从这个function开始讨论系统架构,不过笔者还是把大的部件说出来了(比较简单的架构,有一个transaction_ingestion_service + queue + processor),然后告诉他这个function会是哪个service的。然后就开始讨论他定义的function,需要写伪代码,简单来讲就是call不存在的service, library之类的,步骤之间要衔接紧密,不同condition的if-else也要写细一点。一些被追问的点:
a. 根其实就是play(x, y)里面搜索了,从当前落子位置出发。写完后小哥给了个case跑过了,然后问还可以怎么测,笔者以为问测试相关知识,就说类里面定义了好几个函数,可以针对每一个函数包括help methods写unit test, 然后整个class 可以写functional test。小哥问还有呢,感觉到可能代码不对,然后意识到平局没考虑,说虽然代码检查了游戏啥时结束,但是也有平局的情况,当前代码只会print winner不输出平局信息。结果小哥说你要不加个对角线测试用例,第一个例子只测了水平情况。泥马,原来只是想让我添加个测试用例。感觉他本来也没考虑平局情况。加完测试用例后又让我把平局log给打出来,然后写测试用例。完事就瞎扯了。这次shadow的人也耐心的回答了问题。
五:讲项目+behavior, 笔者带后端以及全栈项目,问的问题基本上现实里天天遇到,算是比较开心的聊了45分钟。
总结,虚的就是第二个系统设计,如果跪了,可能就是这一轮。求锦鲤~~
|