一下出来4个面试官,这是要舌战群儒啊

老张昨天下午请假了,我猜他就是面试去了。果不其然,今天来了,问老张:昨天面试如何?老张很惊讶的问:你怎么知道我面试去了?迫不及待的说:赶紧说说昨天面试的场景,给我分享分享经验。老张喝口水说,别提了,我一进屋,坐了4位面试官,场景很激烈啊,大有诸葛亮舌战群儒的感觉。

🚝 前面的提问

前面的提问倒还正常,技术面试官问的问题大概有:比如JS闭包啦、CSS优化啦、Vue2与Vue3的对比啦、webpack性能优化啦、React高阶组件啦、Promise核心逻辑啦,等等这些。

然后是一位穿着白衬衣的面试官提问:你能说一说从用户输入url到页面展现的过程吗?

然后是一位女面试官问:你离职的原因啦,你对加班的看法啦,你有什么缺点啦这些。

老张都从容应答。整个过程第四位面试官一直没说话,一直噼里啪啦的敲着电脑。等最后,前3位面试官都说:我没有问题了。第四位面试官抬起头来问道:你能说一下,你开发过npm包吗?这个时候,4位面试官的眼睛一直齐刷刷的盯着老张看,貌似是希望得到什么结果一样。

🚝 舌战4位面试官开始

面试官4:你开发过npm包吗?

老张:开发过,名字叫js-tool-big-box,你可以在npm库搜到,或者掘金网站也能搜到,很火爆的。

2.1 js-tool-big-box的功能 

面试官4:你能说一下js-tool-big-box这个npm包都有哪些功能吗?我看有个big和box的词汇?

老张:目前工具包维护的功能包括时间日期转换、cookie的存取、localStorage的存取、防抖节流的快捷应用、number和字符串的常用方法封装、一些日常的正则匹配验证、复制文字到剪贴板、生成UUID、数组去重、隐藏关键字符串中间字符、获取详细数据类型、检测密码强度、下载文件、打开全屏、获取浏览器详细信息等功能,当然,包括但不限于此,我还在不断维护更新。

2.2 内部引入其他第三方包了吗? 

面试官1:你说了这么多,的确很常用,前端项目里很常用,我承认,但这些都是一些随处可见的公共方法,有些像你说的,cookie localStorage 复制文字到剪贴板 时间日期等等,现在都有第三方库了,你是内部引入了他们的包,然后自己再对外转了一层吗?

老张:当然不是,那会让我的npm包变得不可控,都是我自己寻找的代码,后者之前自己开发项目里用过的通用代码,然后经过验证的,并没有引入他们的包。我希望大家引入js-tool-big-box后,可以少引一些第三方包,可以少写一些冗余的公共方法,可以更少的四处去学习第三方包的使用。

2.3 你开发这个js-tool-big-box工具包的初衷是什么? 

面试官2: 你能说一说,你开发这个工具包的目的或者背景,或者说初衷吗?你为什么要开发这个工具包?目前市面上没有大而全的工具包吗?

老张:我开发js-tool-big-box最初是自己使用的。市面上的确是各种各样的npm工具包,也有比较全面的lodash,但目前来看,我这个工具包的全面性和在项目开发中的实用性,已经超过他们了。

我们在前端项目开发中,往往需要写很多重复的公共方法,往往是这个项目写完,拷到下个项目里,有时候拷丢了,或者是自己记录到自己的博客中,然后再去拷贝这些重复的代码。而有些功能,例如复制文字到剪贴板,大家就需要单独引入工具包,但如果项目组没有通知到位,很可能第二天有同事来了一更新代码,再一启动发现,项目报错了,就会浪费时间去排查问题,然后再安装解决。

所以,我希望开发一个符合我们项目开发实情的npm通用工具包,希望可以让大家少引入几个第三方库,因为你多引入一个第三方库,就需要去寻找这个库的学习文档,需要多处学习。我还希望大家的项目里,可以少写冗余的公共方法,可以把更多的时间用到业务开发中去。提升团队的开发效率。

2.4 你这个js-tool-big-box和lodash比,有什么优势吗? 

面试官3: 你刚才提到了lodash库,这个我用过,那么你可以说一下,你开发这个工具库,和人家的lodash相比,有什么优势吗?

老张:你也说了,那是人家的,而这个js-tool-big-box,那就是我们自己的。

一来:前端技术不断进步不断更新迭代,讲究一个活跃度,虽然jquery很多人已经放弃了,但人家一直在活跃着,但lodash,你可以看看,他已经多久没有更新了,这是不符合我们前端开发的基本意识的。

二来:你跟lodash交流,想和作者微信上面说话,你可以试试,人家会不会搭理你,但js-tool-big-box的作者,平易近人,乐于助人,是个非常不错的开发者,他可以和大家成为朋友。试想一下,你是和东方不败成为朋友练剑更快呢,还是左手拿着武器,右手拿着那本书练的快呢?

三来:js-tool-big-box工具库,融合了更多的日常前端项目中更加实用的,他们所没有的功能,即便他们有的我们也迟早会有,他们不好的,冗余的,我们就不会有。

四来: 这是我们中国人自己的库,我们那么多开发者,为什么总是要把他们的库当成宝贝呢,他们做的好的我们可以借鉴,但我们未来一定会比他们做的更符合我们的前端项目,更符合我们的开发思路。你就说他们那个下划线开头,我就看不上。

2.5 你这都没有开源啊? 

面试官4:我刚才电脑上看了一下,你这都不开源啊,大家会用吗?这样不好吧?

老张:哈哈,你担心作者某一天跑路删npm库吗?那么试问一下,开源了,npm官网的delete按钮,难道就不存在了吗?

我们同是开发者,难道不应该有基本的信任吗?当初大家用jq的时候,很多人还直接引入外部的jq文件呢,大家照样用的飞起,也没有担心过jq被删吗?你们宁愿相信外国人,不相信中国人?

至于开源,这是早晚的事,但现在我还没有太多时间去做这件事,现在这大环境下,还是有份稳定的工作才是重点啊,开源那是必须的,早晚的,毕竟集思才能广益,众人拾柴火焰才能高吗?

我希望我可以入职一个团队,我们可以共同认同这件事,这个项目,这个npm包的的继续开发和维护,以及推广。那个时候,就是开源的东风,那个时候,将会有更多的开发者来关注这个包,我们将会有属于自己的官网。那个时候,这就是全中国前端开发者们最喜欢的网站,没有之一。我们这个团队将会任务重大。

2.6 对你自己有什么提升吗? 

面试官2: 那你能说一说,你开发这个js-tool-big-box工具包,对你自己来说,得到了哪些提升吗?

老张: 开发这个工具包呢,一来是希望给自己节约一些开发时间,让自己的开发或者自己所属的团队开发更加高效。

但在开发过程中,我发现,每增加一个公用方法,就会特别有成就感,尤其是有小伙伴使用以后,告诉自己使用心得或者提出意见自己再完善以后,那种成就感是非常大的。

开发这个项目,维护这个项目,其实也是在不断精进自己前端功底的一个过程,例如获取浏览器详细信息那个方法,我需要统计市面上的浏览器,包括PC的,H5的,手机自带的,一些高频使用APP内置的等,包括混乱的userAgent的解析,这些方法的完成,其实都是在不断提升自己的前端开发功底。

比如在开发检测密码强度,和给关键字符串中间加星号显示的时候,一般都是中间加星号或者加点,但我根据自己的经验判断,添加了更多的丰富功能,甚至和一些业务场景相结合,添加了表情符。我觉得,虽然是一个公共方法通用npm库,但其实也在提升着自己的开发业务能力。

在不断推广npm包的时候,我认识了更多的小伙伴,他们给我提出建议,帮我出谋划策,我也在不断地锻炼着自己的运营能力。从开发项目,到推广,到完善,到结合实际前端项目,再到认识更多的朋友。让我发现,这个npm包不仅仅是生硬的一个方法库,他也在实实在在的提升着我对整个项目生命周期的理解以及我整体的认知能力。

2.7 有什么缺点吗? 

面试官3:那你能说一说,你这工具库,有什么缺点吗?

老张:目前来看,缺点就是还没来得及创建一个API学习的网站,使用者们还需要去博客里看如何使用。不过这也怎么加了用户的粘性,因为博客网站已经很成熟了,可以和使用者们高效的沟通,而且也可以通过微信沟通,我希望早些把学习网站搞出来,让使用者们使用的时候方便一些,这样开发就更加高效了。

然后还有一个缺点就是,目前只有我和另外一个小伙伴在维护,人手相对较少,希望未来可以有更大的团队可以一起参与进来,使我们这个中国人自己的库可以更加健壮,服务于更多的前端开发者们。

🚝 结尾 

当4位面试官提问结束后,会议室有个门帘,大家都没有注意。这个时候,后面走出了一位上了年纪的老者。老者咳嗽了一声。然后4位面试官都齐刷刷的站了起来。然后只见老者点了点头,4位面试官就都纷纷坐下了。

老者说:你刚才说的,做全中国前端开发者最喜欢的学习网站,我很感兴趣,然后和老张握了握手。转头对着刚才那个女面试官轻声了些什么,老张有没有听见。然后老者就走出了会议室。

面试结束后,女面试官把老张送出大门,添加了VX,然后说:张哥,你等一下,我们董事长说过会儿开着新提的“燕京U8”送你回去。

  • 41
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经海路大白狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值