8 月 17 日上午 10 点一刻,我和同事正在讨论:
“这个问题就是这样,下载接口这样就可以了,没必要太麻…”
这一刻,荣耀手机响了
“回首依然望见故乡月亮
黑夜给了我黑色眼睛
我却用它去寻找光明……”
一看,杭州,我和同事说,你等我一会,咱一会继续讨论…
“喂,您好”
“你好,请问是…”
…
“好的,那下午 3:00 等您电话”
回来继续讨论问题… 中午和同事吃完饭,突然晴天霹雳,倾盆大雨突如其来,猝不及防,马路上的积水已经淹没了滚动的车轮,我没带伞,但风雨无阻,我急急忙忙的跑回了学校,拖鞋溅起的水花洒湿了我的臀部…终于,大雨在我跨进寝室楼的那一刻戛然而止,看到老乡群里还在成语接龙,正好到了“为所欲为”,果不其然,下一句是“为你麻痹,逼上梁上,山穷水尽,尽力而为,为所欲为”。
我洗完澡,换上另一条花裤衩,已经两点又一刻,看看手机电量 78%,嗯,够了。左手拿着手机,右手握住雨伞,右脚一拉门,“嘣”一声响,门关好了。
打印了一份简历,来到平时办公的工作室门前,里面亮着灯,是的有人。轻轻敲了敲门,正在屋内复习高等代数的考研小妹妹从屋内传来优雅的呼声:“谁呀”,“是我,贵宾”。我告诉她,一会我有个面试,过来这边安静一些。聊了一会,我说我准备面试去了。
有点渴,放下手中的雨伞,看看上次 A 同学带过来的那盒龙井,还有最后两包,一包已经拆开了。拿起热水壶到隔壁热水房打了一壶热水,嗯?尿意浓浓?进入厕所,抬着头探了一口气,身体不自主哆嗦了一下。洗了一把脸,拿着热水来到咖啡厅,咖啡厅已经放假关门了。将手中的热水壶放下,背后是一个书架,书架背后还有一躺沙发,我起身去拿茶壶和杯子还有铁观音。 沏好茶,静坐,窗外雨滴声已经停了,看了看时间, 2:45。
不出意外,再过一刻钟,我的手机将再次响起,仍然会是那个杭州的电话,当然唱的还是那首歌“回首依然望见故乡月亮…”。就在这时候,远处传来了脚步声,“哒,哒,哒…”,清脆、均匀、细腻,是高跟鞋与光滑地面的碰撞,不对,还有手机里传出的民谣。我仿佛看到了她窈窕的身材,仿佛看到了她扭动的屁股。声音在靠近,我激动的起了身,对的,她再向我走来。5米、4米、3米,我看着她,她也看着我,这一刻持续的时间如 HTTP 请求花费的时间,精确到了毫秒。正当我张开嘴“你…”,还没等完全吐出口,她从我身边走过,在书架后面的沙发中似坐似躺,如葛优,玩起了手机。我控制住了自己,往咖啡厅的沙发背她而坐,她关掉了音乐,我不知道她为什么来这里。
茶已经沏开,往 10 毫升茶杯中到满了一杯,“噗~”吹了一口,细细品尝,清香雅韵,如天然般的兰花,滋味纯浓,香气馥郁而持久… 5分钟过去了,现在是 2:51,远处再次响起了脚步声,粗糙、逆耳。是一位男孩,男孩子向她走去,我起身踱步于咖啡桌的空隙之间,在等待。男孩子在女孩旁边坐下,听到“波~”,回头一看,书架后面,男孩亲了一下女孩子。我装作没看到,回到沙发,再次背她而坐。看了一下手机,2:58。
打开网易云音乐,找到收藏着的民谣专辑,嗯,确实很多都已经变灰。点了一首老狼的《我要你》,我有点紧张,再喝一口茶,心中默默念了一遍自我介绍。3:05分,手机终于想起,还是那个杭州的电话,还是那首歌“回首依然望见故乡月亮,黑夜给了我黑色眼睛…”
“喂,您好”
“你好,请问是…”
“是的”
“那我们开始面试…”
然后就是正儿八经的面试了
自我介绍
balabala…
你说你在腾讯大连实习,说一下腾讯大连是一个什么情况?
腾讯大连是一个腾讯全资子公司,做的是深圳那边的项目,balabala…
说一下你实习在项目中做了什么?
背景..., 角色..., 任务...., 收获.... balabala一大堆...
实习中提到回掉地狱,说一下你的解决方案
我说开始使用 async 库,后来服务器升级了 Node 版本,使用了 async await 的形式
提到 async await 说一下内部机制(蒙蔽),细问 await 干什么的?
(回答不好,面试官好像不是很满意)我说 async await 更多像是语法糖,就是把 Generator 生成器包装了一下。
await 等的是异步执行完成,然后将结果返回,成功的话往下走,失败的话 catch 捕获
Promise 内部实现机制(蒙蔽中)
Promise 是 resonve reject 形式,成功走 resove 失败走 reject ,可能理解不是很透彻目前还处于使用阶段,没仔细研究过底层细节(跳过,往后面引)
项目中提到了 Token ,问了为什么选择 Token, 与 Seesion 区别?
(答不好)Redis 中只存了 Session,使用 Token 可以解决多终端同时在线,Token 不用考虑集群中的同步问题, Token 计算比 IO 请求要快(可能不是这样)
Session 怎么识别用户?
前端传 Cookie,Cookie 中保存了 Session id…
那你是怎么做 Token 延时的?
(答不好) Token 的过期时间延时还没解决,但我有两个方案,一是每次客户端请求重新生成 Token,然后返回(显然不是最好的);二是服务端缓存 Toke,每次更新 Token 缓存过期时间,面试官继续问…
其实我最好的答案没说出来,可能有点紧张。最好的想法是将 token 的过期时间缓存,只有当 Token 快要过期的时候才更新 Token。
那你用 Token 和 Session 还是有什么区别?(都是套路啊,哈哈~)
…
问了为什么用 MongoDB ?MongoDB 和 MySQL 的存储方式有什么区别?
(存储方式?蒙蔽中,这么大的话题怎么说清楚?随便说说…)存储方式倒是没有仔细研究过,倒是知道他们之间的一些区别,MongoDB 存的是 bson,MySQL 直接存数据…(没说清楚),MongoDB 不支持事务…
实习中提到了跨域,说一下跨域的解决方案
跨域常用方式两种,JSONP 和 CROS,说了一下 JSONP 的原理,按照 jQuery 源码中思路说(往 jQuery 中引),再说了一下 CROS 的坑,按照之前的博客
问怎么处理 options 预检请求
Node 端直接返回 200 状态码…
提到看过 jQuery 源码,问$(selector) 后返回什么?是数组还是对象?(被动蒙蔽)
(开始毛不犹豫的说是对象,因为有点忘记了,模糊了)是一个可遍历对象,类似数组的对象,每个 dom 元素是一个对象,加了一个 length 属性 …(面试官问那如果是对象多个元素怎么可以按照数组取,蒙蔽了赶紧说)好像是数组,在返回之前调用了一个 makeArray 的方法转为数组了(面试官接着问,那是数组怎么还可以继续调用后面的方法)…又解释一通
最终又回来看源码: 靠 id 匹配返回对象,考类这样能匹配多个元素的调用 makeArray 返回数组…
提到 jQuery 中的继承,问 JS 中的继承,细问原型冒充,提到 call 和 apply
ES6 之前,拷贝继承,原型继承,原型冒充也可以继承特定属性,实现多继承,ES6 引入了 extends 关键字。
细问原型冒充怎么实现,balabala…
接触 Node 才这么一个半月?你怎么能胜任 Node 方向?
是的,但是我之前一直接触过 JS,JS 基础还是可以的(往 JS 基础引,希望问更多基础内容…,失败,没问),另外 Node 需要操作数据库,我数据库方面还不错(往数据库引…失败,没问)
说一下你在学校的那个项目?
您指的是哪个项目?神经网络那个还是…
不,就业网那个
balabala…
前端用什么? 后端用什么?
前端用的 JS 多一些,使用 jQuery(再次引导,失败) ,大日历使用了 calendar .js 库,后端数据动态添加…
后端也算是做了一些数据库的优化(再次引导,失败)
你还有什么要补充?
我靠,这么快结束了,蒙蔽中... 数据库不问了? 网络不问了? 操作系统不问了? 算法不问了? 安全不问了?
感觉希望不大了,死皮赖脸的说:
“数据库方面咱不问吗?(数据库是长项,希望能加分)”
“数据库今天咱不问了”
sad……
“那今天咱先这样,后续有什么问题我们 HR会联系你…”
“额,,,那个,,,有个问题”
“哦,对了,你还有什么问题要问我吗?”
你还有什么问题要问?
从今天面试情况来看,如果我要从事 Node 方向接下来应该在那方面更加加强学习一下?
“你项目经理不错,但是(瞬间泪奔…估计没戏了)你要做 Node 开发 Node 方面还需要加强,最起码 async await 原理你应该懂, Promise 实现细节这些今天面试都没有体现出来…”
“哦,知道了,那我回头加强这方面的学习,感谢面试官”
“嗯,那没什么问题今天就到这”
嘟,挂了…历时 36 分钟 9 秒 … 感觉已挂。“尽人事,听天命”,完。