V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
syncher
V2EX  ›  职场话题

阿里前端 Node.js 一面经历

  •  
  •   syncher · 2017-08-17 18:45:09 +08:00 · 8541 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    8 月 17 日上午 10 点一刻,我和同事正在讨论:

    “这个问题就是这样,下载接口这样就可以了,没必要太麻...”

    这一刻,荣耀手机响了

    “回首依然望见故乡月亮

    黑夜给了我黑色眼睛

    我却用它去寻找光明......”

    一看,杭州,我和同事说,你等我一会,咱一会继续讨论...

    “喂,您好”

    “你好,请问是...”

    ...

    “好的,那下午 3:00 等您电话”

    回来继续讨论问题... 中午和同事吃完饭,突然晴天霹雳,倾盆大雨突如其来,猝不及防,马路上的积水已经淹没了滚动的车轮,我没带伞,但风雨无阻,我急急忙忙的跑回了学校,拖鞋溅起的水花洒湿了我的臀部...终于,大雨在我跨进寝室楼的那一刻戛然而止,看到老乡群里还在成语接龙,正好到了“为所欲为”,果不其然,下一句是“为你麻痹,逼上梁上,山穷水尽,尽力而为,为所欲为”。

    我洗完澡,换上另一条花裤衩,已经两点又一刻,看看手机电量 78%,嗯,够了。左手拿着手机,右手握住雨伞,右脚一拉门,“嘣”一声响,门关好了。

    打印了一份简历,来到平时办公的工作室门前,里面亮着灯,是的有人。轻轻敲了敲门,正在屋内复习高等代数的考研小妹妹从屋内传来优雅的呼声:“谁呀”,“是我,贵宾”。我告诉她,一会我有个面试,过来这边安静一些。聊了一会,我说我准备面试去了。

    有点渴,放下手中的雨伞,看看上次 A 同学带过来的那盒龙井,还有最后两包,一包已经拆开了。拿起热水壶到隔壁热水房打了一壶热水,嗯?尿意浓浓?进入厕所,抬着头探了一口气,身体不自主哆嗦了一下。洗了一把脸,拿着热水来到咖啡厅,咖啡厅已经放假关门了。将手中的热水壶放下,背后是一个书架,书架背后还有一躺沙发,我起身去拿茶壶和杯子还有铁观音。 沏好茶,静坐,窗外雨滴声已经停了,看了看时间,2:45。

    不出意外,再过一刻钟,我的手机将再次响起,仍然会是那个杭州的电话,当然唱的还是那首歌“回首依然望见故乡月亮...”。就在这时候,远处传来了脚步声,“哒,哒,哒...”,清脆、均匀、细腻,是高跟鞋与光滑地面的碰撞,不对,还有手机里传出的民谣。我仿佛看到了她窈窕的身材,仿佛看到了她扭动的屁股。声音在靠近,我激动的起了身,对的,她再向我走来。5 米、4 米、3 米,我看着她,她也看着我,这一刻持续的时间如 THTP 请求花费的时间,精确到了毫秒。正当我张开嘴“你...”,还没等完全吐出口,她从我身边走过,在书架后面的沙发中似坐似躺,如葛优,玩起了手机。我控制住了自己,往咖啡厅的沙发背她而坐,她关掉了音乐,我不知道她为什么来这里。

    茶已经沏开,往 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 秒 ... 感觉已挂。“尽人事,听天命”,完。

    29 条回复    2017-09-01 14:35:49 +08:00
    syncher
        1
    syncher  
    OP
       2017-08-17 19:04:36 +08:00 via Android
    THTP —> HTTP
    Matrixbirds
        2
    Matrixbirds  
       2017-08-17 19:27:11 +08:00   ❤️ 1
    表示我也面了阿里的 node 岗位..结果挂了。。问了 nodejs 的实现层架构,事件驱动和函数之间的区别优劣,媒体资源文件的文件结构,然而都没答对。。
    https://github.com/xieranmaya/blog/issues/3 Promise 推荐看这篇。看懂之后写一个不麻烦。
    syncher
        3
    syncher  
    OP
       2017-08-17 19:34:39 +08:00 via Android
    @Matrixbirds 好,感谢,以后我看看
    Weny
        4
    Weny  
       2017-08-17 19:35:57 +08:00 via iPhone   ❤️ 1
    害怕 居然没有转折... 我还以为 HR 会说 明天再来一趟我们 marketing...
    syncher
        5
    syncher  
    OP
       2017-08-17 19:44:37 +08:00
    @Weny 哈哈,不至于
    v1024
        6
    v1024  
       2017-08-17 20:09:10 +08:00 via iPhone   ❤️ 1
    写网文去吧
    syncher
        7
    syncher  
    OP
       2017-08-17 20:17:37 +08:00 via Android
    @v1024 可别,编程才是最快乐的
    Biwood
        8
    Biwood  
       2017-08-17 20:18:54 +08:00 via Android   ❤️ 1
    铺垫也太长了点,作者是希望用先扬后抑的方式来表达自己面试失败的失落心情对么
    syncher
        9
    syncher  
    OP
       2017-08-17 20:20:33 +08:00
    @Biwood 没有了,随便写写喽。面试可能失败,但也谈不上心情失落
    k9982874
        10
    k9982874  
       2017-08-17 20:59:43 +08:00 via iPhone   ❤️ 1
    发现不少知识点需要补充,收藏了
    ittianyu
        11
    ittianyu  
       2017-08-17 21:04:04 +08:00   ❤️ 1
    你看一下状态,面试 2 天后还是面试中, 说明没挂。
    目前等三面中 = =。。
    听说有的大佬 5 面都过了
    syncher
        12
    syncher  
    OP
       2017-08-17 21:08:49 +08:00 via Android
    @ittianyu 嗯 好的。我之前没底气,投比较迟,面试结果也改变不了,但能通过面试学到很多
    Mirana
        13
    Mirana  
       2017-08-17 23:14:21 +08:00   ❤️ 1
    我总感觉前端面试容易跑偏
    Orenoid
        14
    Orenoid  
       2017-08-17 23:34:01 +08:00 via Android   ❤️ 1
    能请问下是社招还是校招吗?
    syncher
        15
    syncher  
    OP
       2017-08-17 23:35:10 +08:00 via Android   ❤️ 1
    @Orenoid 是校招
    torbrowserbridge
        16
    torbrowserbridge  
       2017-08-18 00:01:38 +08:00 via Android   ❤️ 1
    在这里经常看到各种面试阿里巴巴失败的,奇怪。
    fuermosi777
        17
    fuermosi777  
       2017-08-18 00:56:47 +08:00   ❤️ 1
    看来国内前端喜欢考“知识”而不是“能力”
    chairuosen
        18
    chairuosen  
       2017-08-18 01:08:35 +08:00   ❤️ 2
    说明面你的是个前端
    blanu
        19
    blanu  
       2017-08-18 01:09:53 +08:00 via iPhone   ❤️ 2
    前面说实话,写得毫无意义,可能也是我讨厌看网文的原因吧
    syncher
        20
    syncher  
    OP
       2017-08-18 05:52:17 +08:00 via Android
    @blanu 感谢您的阅读已经建议,可能确实是多余的。
    syncher
        21
    syncher  
    OP
       2017-08-18 05:53:46 +08:00 via Android
    # 20 已经 —> 以及
    qdwang
        22
    qdwang  
       2017-08-18 06:35:15 +08:00 via iPhone   ❤️ 1
    楼主写的很详细 很生动~
    flaneurse
        23
    flaneurse  
       2017-08-18 06:39:20 +08:00   ❤️ 1
    CROS ——> CORS
    whypool
        24
    whypool  
       2017-08-18 09:41:54 +08:00   ❤️ 1
    同前端+node,到 3 面已经 gg,楼主加油
    mcfog
        25
    mcfog  
       2017-08-18 09:42:58 +08:00 via Android   ❤️ 1
    感觉 async.js 和 thinkphp 一样害人不浅
    syncher
        26
    syncher  
    OP
       2017-08-18 09:55:37 +08:00 via Android
    @whypool 有没有面试经验,可以单独聊吗?😂
    fiht
        27
    fiht  
       2017-08-18 10:10:31 +08:00
    校招面了六面的路过...还在等结果....
    whypool
        28
    whypool  
       2017-08-18 10:13:52 +08:00
    @syncher 内推的,估计不一样吧,感觉就是随便问的
    ladyxiao
        29
    ladyxiao  
       2017-09-01 14:35:49 +08:00
    有没有人面过阿里后台部门呀,我有个朋友近期想投递阿里后端 Java 的岗位,有木有经验传授哇???
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   974 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:54 · PVG 06:54 · LAX 14:54 · JFK 17:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.