说一下背景,公司为创业型公司,项目组才创建,目前只有我一个前端,我个人的招聘需求是不要求技术非常厉害,只要喜欢钻研学、喜欢思考、平时能多沟通,最重要的是写代码的时候能吹牛逼就行。如果能比我强,带带我,那肯定更好。

这次的简历是我老大筛出来的,原本是他去面的,但是他开会去了,所以我就临时去面了,此次面试者是一位三年工作经验的前端,主要技术栈是vue3、vite

平常有没有自己造轮子或者看一些开源的项目

面试者:有看github,看vue相关的开源

我的想法:面试者的简历没有写关于这些的内容,我问这个问题的原因,主要想看面试者是否有关注一些开源项目,会不会去造轮子,我平常也会看github或者一些文章之类的,希望能从这个问题延伸开,开始面试。

接着问,能说一下具体的是哪方面的开源吗,组件库还是一个工具库还是一个框架,或者文章、博客都行,简单介绍下

面试者:不记得了。。。

我的想法:有些开发者没有逛开源的习惯,这个不一定能考察到面试者是否喜欢钻研思考,直接开始下一个问题吧

从0到1搭建一个项目你会考虑哪些问题

面试者:从设计稿出发,查看哪些组件需要抽离封装成全局组件的,或者哪些组件要进行封装等。。。

我的想法:项目组刚刚创建,同时开展了三个项目,涉及到后台管理系统、app和小程序,三个项目都是我从零开始搭建的,项目组只有我一个人,目前三个项目的基础架构、技术选型、技术方案、以及前端基础建设都是我一个人在做,后续如果有新项目要开的话,希望有人能和我探讨一下这方面的问题

问这个问题的目的,主要是想考察一下面试者有没有尝试过自己搭建一个项目,或者有没有思考过这类问题。面试者只是从设计稿组件的角度简单说明了一下,我可能更多的希望面试者能从技术选型、或者项目基础建设,或者能根据业务来输出自己的一部分观点,例如一些工程化配置(eslit、git husky等)、或者ci/cd、性能监控、还有code review、开发规范或者技术分享等、

我觉得他可能没有回答到我想要的点子上,于是我就接着问

技术选型,你会考虑哪些问题

面试者:。。。。东扯西扯

说的乱七八糟的。。。。。我直接打断,

我的想法:问这个问题的目的是想看面试者有没有站在项目管理者的角度思考过问题,例如我们为什么要用这个组件库,这个组件库优势在哪,为什么不用其他的组件库,最好是能列出场景来举例说明

我给他讲述我的思路:其实可以从社区生态,issue、pr,性能、优势和劣势,以及未来可能会出现的问题等方面来回答,你们之前的项目是用的uview, uview和uni-ui,uni-ui的优势就是兼容性好、性能好等,dclound团队开发的,但是问题就是功能不够强大,可能不太能满足开发需求,uview的优势就是兼容app和小程序,组件库功能多,用的人多生态比较好,但是问题就是可能会不太稳定,现在作者维护的比较少,提的issue中的bug也比较多,如果出现bug,后续可以采取打补丁或者直接改源码的方式来修复

接着问vue

vue文件是怎么被解析渲染呈现到浏览器上面的

面试者:没有怎么研究过源码的实现

我的想法:这个问题主要想问的是vue的源码实现,可以从vue3源码中的render,mount来回答,但是除了源码实现之外,还可以延伸讲到babel、Esmodule,vite/webpack构建工具、浏览器渲染等,再延伸还可以讲到操作系统、组成原理等

这个问题深度和广度都有涉及,好像是难了一点,既然面试者没有看过底层源码实现,那就算了,vue也不问了,无非就是调两个api而已,能写业务就行,再问些八股文的面试题没什么意义,知道怎么用vue的api就行

我问:你对vite熟悉点还是webpack熟悉点?

对vite熟悉点

有了解过依赖预构建吗

面试者:叽里呱啦。。。。

面试者说的比较乱,我听不大明白,但是好像还是回答到了点子上,vite按需预构建依赖,可能只是没有组织好语言而已,所以有点卡壳,

本来还想问下vite热更新的实现的,算了算了,能知道vite或者webpack这些玩意怎么配置就行。太过于深究没多大意义,大部分人都不太会去研究这玩意

如果想看下vite底层实现的话,可以看下我的这篇文章:写了个辅助学习vite的小工具(mini-vite)

或者我的github https://github.com/lyk990/mini-vite

你用vite做了哪些配置

面试者:图片的优化,console的优化配置等

能知道有这些插件、配置就行了,

看了一眼他的简历,发现面试者简历上的项目大部分是uniapp的移动端项目,去年就开始了,基本上都是用的vue3+vite,于是接着提问

你在去年就直接用vue3来写uniapp了,有没有遇到什么bug,遇到之后是怎么修复的呢

面试者:vue3的组件库可能不够多,需要自己封装组件,遇到bug就自己封装组件

我接着问:去年上半年就使用vue3,风险有点大啊,你们为什么会选择vue3呢

面试者:这个技术栈主要是产品经理选的,是他确定下来的,

我的想法:吹牛逼吧,产品经理?????产品经理还管这事???

接着提问

介绍一下你最熟悉的一个项目

面试者:一个抽奖的小程序,主要有。。,叽里呱啦说完

听到了关键词支付,想从支付开始提问,逐步延伸到他的项目和业务上面去

我问:看到你提到了支付,能说一下微信支付有哪些api吗

面试者:不记得了

。。。。。。。自己写得代码,用的哪个api还能不记得?????

接着问

你的vite图片优化,是用的哪个插件呢,叫什么?

面试者:不记得了

我的想法:这是你刚才自己说的图片优化,用的哪个插件都不知道。。。。。

再问下去好像没多大意义了,直接结束吧。。。

你的意向薪资是多少

面试者:9到10

三年经验,9到10。。。。。。。

面试结束

总结

这次的面试按照三年经验的简历来问的问题,主要从项目管理者的角度来进行的提问,主要涉及到项目管理、源码实现。

因为我自己从来不背八股文,所以没有问一些八股文面试题。对于我来说,前端技术这么多,学是学不完的,无非就是看下文档调两个api而已,底层才是不变的,我可能更看重谷歌搜索能力还有debug能力以及求知的意识

我在提问时希望能从和面试者的聊天中逐步的延伸,然后发起提问,面试者回答的时候最好是能结合场景来进行回答

最后说一句,最开始不知道面试者的意向薪资,所以直接按照三年经验问的问题,我要是知道他的薪资要的这么低,我肯定不会这么问。。。。下次先问意向薪资,再提问!