你是十八般武艺样样精通,还是样样通样样松?
工程师真的很难,会得不多会被问为什麽没学,会得很多还要被质疑专业程度;这种比较类型的问题,除非你有事先做功课,不然就算你都会用也未必能在现场对答如流。
你会的後端框架不只一个,可以说明一下它们之间的差异吗?
回答问题所需具备的知识
衍伸问题
因为履历资讯
中显示求职者会如下的後端(Backend)框架:
当你会的东西多,面试官就会想了解你是每个都学一点,还是真的了解它。
之前使用 PHP 的 Laravel 框架
开发过内部管理系统,也曾用 Node.js 的 Express.js 框架
完成过餐厅点餐系统。
两者的差异主要因为程序语言
而产生的,PHP 是同步语言、多执行绪,Node.js 是一个能执行 JavaScript 的环境,支援非同步,为单执行绪。
如果专案要求稳定一致的效能
,我会偏向使用 PHP 框架;而如果要承接高流量
,我会选择 Node.js 框架。
如果面对一个问题只有一种解决方案
时,面试官会深入询问
这个技术;但如果面对问题有两个以上的解决方案
,他就会问你在不同情境
下该使用什麽技术,每个技术都有各自的优势,这边我们就从不同的角度来做分析吧~
同步的 PHP vs 异步的 Node.js
硬体设备
上。多执行绪的 PHP VS 单执行绪的 Node.js
应用场景
从 Client 端与 Server 端的沟通频率来做分析:
可使用的资源
因为 NPM 的命名方式太自由,导致上面有很多的资源都是无效资源,
关键字第一个找到的未必是最合适的
。
人才市场
职位流动性高,用 PHP 开发
会比较合适。会 Node.js 的薪水会略高於会 PHP
的求职者。专案容量
用 Laravel 跟 Express.js 来比较:
实作过程往往要扩充一堆 package
,而且一个 package 往往会有很多的 dependency;这些原因容易导致最终实作出来的是一个笨重的专案。程序语言转换
除非你的运气逆天,每次都刚好找到符合你技能树的公司,而且这间公司专案用的技术还很固定;不然肯定要面对程序语言的转换,这边分享几个转换时要注意的重点。
Laravel 很类似的 AdonisJS 框架
,这份不适感会下降许多,反之亦然。内建函式都要重新学习、生命周期也要重新熟悉、错误处理的经验也要重新累积
。效能
面对错误的处理
不过这块可以透过 PM2 的 Cluster Mode 与自动重启来补救。
热更新
在开发阶段推荐使用 supervisor 这款套件。
STEP 1:在全域安装套件npm install supervisor -g
STEP 2:建立一个myapp.js
的档案,并复制贴上下面程序
var http = require("http");
http
.createServer(function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Hello World!");
})
.listen(3000, "127.0.0.1");
STEP 3:用node myapp.js
启动程序後,修改res.end("Hello World!");
的内容;再刷新网页後内容不变
。
STEP 4:改用supervisor myapp.js
启动程序,修改res.end("Hello World!");
的内容;再刷新网页後内容更新
。
supervisor 也可以做专案资料夹的监控,但是要记得排除一些资料夹(ex:储存 log 档的);否则你的专案就无时无刻在重起了。
如果是正式的网站且流量大,建议使用 PM2 来做处理,它也有监控资料夹的功能。
存在即合理
预估使用者数量不多或是主要来自於内部成员,用什麽框架及程序语言其实都差不多
。出事了公司没有能够处理的人才
,没有人会在意一个不能用的网站效能有多好。当你有办法靠它解决各种现实难题时,再去学新的框架跟程序语言也不晚
。考点:这题其实是想了解求职者的人格特质
这两个都是为了解决问题的技术,我一开始用 Node.js 的 Express 框架独立完成
了几份专案;但後来有一个需要 Team work
的大型专案,因为当时的组长比较熟悉 PHP 的 Laravel 框架,所以我便藉由这个机会学习新的技术
;也因为这次的技术转换,让我了解不同框架在部署以及效能各方面的差异
。
我想透过上面的回答给面试官几个讯息:
- 我能独立完成专案,也可以团队合作。
- 我愿意学习新技术。
- 学习的同时会分析不同框架的优劣。
考点:确认求职者对框架的认知
好处
框架能够让初学者快速入门并开发出有一定水平
的专案,因为框架提供了许多常用的函式,因此可以大幅缩短专案时程
;在团队协作上框架优势更为明显,能够让成员有一致的开发方式
。
坏处
因为框架已经帮开发人员做了太多事情,这会导致开发人员并不理解许多功能的原理
,这也造成了一但框架无法满足功能,初学者的生产力会断崖式下降
;如果长期使用,也容易让自己的开发思维被限制在框架内
。
希望读者不要只把我提出来的问题当成面试会出的考题;当面试官会这样询问时,通常是因为实务上也会遇到类似的问题。
感谢大家的阅读,如果喜欢我的文章可以订阅
接收通知;如果有帮助到你,按Like
可以让我更有写文的动力,我们明天见~
我在 Medium 平台 也分享了许多技术文章
❝ 主题涵盖「MIS & DEVOPS、资料库、前端、後端、MICROSFT 365、GOOGLE 云端应用、自我修炼」希望可以帮助遇到相同问题、想自我成长的人。❞
<<: 网页超连结-30天学会HTML+CSS,制作精美网站
特别的一年,从每天上班战战兢兢的通勤上班,到经历过长时间的家工作 不知道大家有没有不习惯的感觉呢? ...
注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 声明:这一系列文章并无...
前言 加权指数和法人留仓那些都已经完毕了,现在回到个股的讯号灯。这次要做的是MA(移动平均数)的穿越...
WhatWeb是一个用来分析网站的工具,拥有超过1800种的插件来分析网站,包括服务器类型、版本、I...
LINE Developers:https://developers.line.biz/zh-ha...