美文网首页JS相关程序员
Node.js 面试题总结

Node.js 面试题总结

作者: 鸥晓栢 | 来源:发表于2018-10-16 12:45 被阅读937次

    原文链接
    笔者前段时间(2018.09-2018.10)参加面试,地点深圳,面试的岗位是NodeJS后台开发,工作年限是1 ~ 3年,面过的公司有1000人以上的大公司,一百人左右的中等公司,及20 ~ 50人的创业公司。

    以下是一些对问到的问题的小结,希望对也要参加面试的朋友有些帮助,也欢迎补充。

    文档的内容分为以下几部分:

    • 技术类问题
    • 人事问题
    • 最后

    技术类问题

    主要分为JavaScript语言层面的、网络及规范、数据库、缓存、消息队列、开发流程等,有些问题相互交叉、水乳相融可能涉及到多项知识

    JavaScript、Node.js

    • 有没有用过apply(), bind(), call()这些方法,他们之间的区别
    • Promise的几种状态、如何实现的、什么情况下catch不到错误
    • 有没有用过asyncawait
    • 流程控制库async,自己在项目中常用到哪些方法;什么情况下会选择async库,什么情况下选择Promiseasync库是如何实现的(要阅读源码)
    • Node.js单线程、其应用场景,如何实现高并发,讲讲异步I/O、事件循环以及其优先级
    • Node.js后台影响性能的瓶颈,如何避免,如何实现扩展
    • 常用到哪些库(原生模块、第三方库)、模块加载的机制
    • 常用到哪些框架,expresskoa的异同,选择用哪个框架的标准是什么

    网络及规范

    • 简要说说http协议
    • tcp建立连接、释放连接的过程
    • 说说RestfulAPI的规范
    • 怎样保证代码质量(代码检查、单元测试、持续集成)
    • 用到哪些设计模式

    数据库

    • 用过哪些数据库(MySQL、MongoDB、Redis)
    • MySQL查询优化、索引、索引的原理
    • MySQL库设计一个简单的论坛系统,画出用户表、帖子表、评论表的er图, 当用户量很大时,如何优化,缓存最多存一万条数据时如何优化
    • MySQL的配置文件改过哪些参数
    • MySQL及MongoDB如何选择,选择的标准是什么
    • MongoDB的聚合函数,用到过哪些参数
    • MongoDB的几种索引,数据量特别大时的分片
    • 数据库的灾备(MySQL、MongoDB)

    缓存(Redis)

    • Redis的几种数据类型(string、set、list、sorted set、hash等)
    • Redis主要用到哪些API
    • 缓存在项目中的具体应用(主要针对项目经验来谈)
    • Redis如何拓展(集群)
    • 缓存更新的问题,当大量缓存同时过期时如何处理,缓存雪崩的问题
    • Redis的持久化
    • Redis为什么这么快、单线程

    消息队列

    • RabbitMQ的几种应用场景
    • RabbitMQ交换机有几种类型,*号与#号的区别,举个例子
    • Redis的订阅发布

    开发流程

    • 用到的测试框架(mocha)
    • 代码覆盖率
    • bug缺陷管理(JIRA)
    • 版本控制(git、gitlab)
    • 持续集成
    • 敏捷开发

    其他

    • 公司技术方面的人员分配(前端、后台、运维、DBA、原生)
    • 你认为你目前的团队或公司存在的问题(这是个坑,接下一个)
    • 为什么没有试图去改变
    • 目前你们公司4个node开发的,你认为你的水平在这四个人中排第几,依据是什么(这个问题好蛋疼)

    人事问题

    除了技术面试,人事的面试也是很重要,有些问题也不一定是人事问,可能是经理、或者老板问。

    • 对我们公司有什么了解(虽然是海量投简历...但是收到面试的通知,还是应该对这家公司进行一些调查,查一下主营业务,看看其他人的面试评价,也可以评判下自己适合不适合)
    • 上家公司为什么离职
    • 期望进入什么样的公司(这个问题最好提离职时就能想好,不只是应付面试,更多的为了自己)
    • 未来的职业规划(同上,要认真考虑,可以先有个短期的)
    • 目前的薪资(有些公司可能需要提供银行流水,所以水分不要太大)
    • 期望的薪资(直接给个确切的数吧)
    • 平常喜欢做什么
    • 能不能接受加班、最晚能加班到几点(这个问题感觉好虚)
    • 什么时候到岗(巴不得第二天就去报道的,要考虑清楚,一般都会等一个月)

    最后

    换工作前还是要弄明白自己想要什么,期望在下家可以收获什么,跳槽虽然能涨工资,但是不要过于频繁。

    找工作真的是一件很辛苦的事情,简历被拒、笔试没过都是很令人受打击的,等待面试结果的过程也很受煎熬。但确实是一个学习,了解自身不足的契机。

    希望这篇文章能给准备面试的你有一些帮助。

    相关文章

      网友评论

        本文标题:Node.js 面试题总结

        本文链接:https://www.haomeiwen.com/subject/ramczftx.html