关于前端技术引发的思考

关于面试

前段时间我的一个朋友去面试,前端岗位,面试官问他这样的一个问题:同样是vue前后端分离项目,一个普通的工作两到三年的都能做,我为什么要花更多的钱招你过来?同样是做项目,撸代码,你的优势在哪里?


关于前端技术引发的思考


一连串的追问让他显得有些不知所措。先不谈结果如何,可能我们大家面临这样刁钻的问题都会有些茫然吧。

很显然,仅仅只有一般人的编码思维是远远不够的。

而前端,大多人似乎一直做着从后端通过ajax获取一下数据,然后渲染到浏览器,然后通过form表单上传文件等重复性的工作。

在it行业之前有一句话比较流行,说你工作十年,就具有十年的工作经验吗?还是把一年的经验重复运用了9年而已。

关于计算机硬件

我们做软件的似乎很少真正接触计算机内存,CPU这些硬件,感觉这些似乎显得无关紧要,接触最多的可能就是闭包的问题会导致内存溢出,甚至不知道内存溢出究竟有什么样的表现。CPU更是少之又少。

关于前端技术引发的思考

究其原因无非两个

1、我们的项目不存在内存溢出的问题,现在浏览器已经做得非常的高效了,完美的内存回收机制让前端更加专注于业务上。

2、即使有内存溢出的问题,我们可能也不太会分析问题,为什么内存占用那么多?CPU为什么飚到100%以上了?

下面来简单来说说这个内存和CPU

首先,他们是我们的计算机中不可获缺的资源硬件,计算机中的所有的应用软件都会使用到CPU和内存。如果你的应用程序一直占着高内存,计算机内存资源吃紧,直接表现就是卡,CPU过高一般你能听到你的电脑CPU风扇呼呼呼狂转。

分别举个例子:

前端开发大多都是基于浏览器,比如我们通过ajax从服务器获取到一组数据,然后在页面上渲染成列表。这个列表中有1000条数据,你放在了data中的list数组中,那么1000长度的数据就需要内存分配一定的空间承载它们。这也就是我们常说的从服务器端将数据读取到内存中去。

再比如后面我们可能要对这个数组的数据进行filter过滤筛选,这个过程中也是要消耗内存资源的。


关于前端技术引发的思考


在nodejs的开发中,我们在读取大文件的时候通常不会用readFile这个Api,为什么呢,因为它是一次性将数据读取到内存中去,如果我要读取一个1g的文件,一次性读取的话,即使能正常读取,那么读取完成后,1个G的内存将被消耗掉。所以一般会使用流的方式去读取。

与内存对比,CPU似乎更陌生,一般在计算量大的情况下,对CPU的资源消耗比较大。我们都知道 Node在计算能力这块是远比不过java和php这些老牌的后端语言了。

写在最后

多思考,有机会一定要阅读一下Vue或者react的源码。形成自己的一套技术体系。

2019各大互联网相继爆出裁员新闻,经济寒冬下人人自危,加油吧,少年,愿2020年不再不寒冬!


分享到:


相關文章: