PureStorage第一轮面试面经

只面了一道题,还是register call back那道题,只不过题干是面试官一点一点引导出来的

面试官先跟我描绘了一个场景。就是假设我是公司内部工具开发人员,现在有公司内部的客户要求我去开发一个notification system,提供两个功能

1 register: 登记callback function

2 fire 触发所有的 callback function

所有callback function都是无参的

面试官先问我用什么数据结构存储这些callback,我说列表 他说ok 叫我实现代码 我就实现了一个最基本的

这个时候最迷的事情来了

面试官突然问我 作为一名内部开发人员 你认为现在还有什么是需要向内部客户确认的(一开始我没听懂 确认了好几次我才知道面试官在问什么 难道此处是在考察乙方的基本素养?)

为了不让面试官看出来我看过面经,我就胡乱列举了一些功能,然后问面试官这些功能是否需要实现,说到一半面试官打断了我,他说我已经领会了他的意思了

然后他就开始说基本要求:callback一旦被登记,就必须被调用,且至多调用一次

(flag的事情没有说, 关于什么是flag详见其他面经) 说完了我就开始写代码,加了锁

然而写完了他说不对,说这样的话有些callback会无法执行

我找了半天没发现,然后他举了个例子

举完例子后我说「只要再调用一遍fire就可以了啊」

他说「看来你做了个假设,就是假设fire可以被调用多次,这个假设是错误的,fire至多被调用一次」

我的内心几乎是崩溃的,面试官不说谁知道至多被调用一次

然后我就厚颜无耻的按照面经答案把代码写了,面试官说perfect, 然后他说时间到了,问我还有没有什么问题要问他(其实这个时候还有约莫十五分钟…)

不知道面试官之所以这样设计面试是不是考虑到了我的暑期实习情况(我暑期实习期间也是做的内部工具开发) 感觉面试官说话一副有气无力的样子,a nyway, 反正面试正常发挥了,自己也算勉勉强强准备了,希望能move forward吧