前端工程师吐后端工程师(第一讲)——前端工程师的尴尬

        前端工程师发展到一定程度就会出现自己的瓶颈,因为越到职业发展后期我们越能发现,如果想要做成一个技术上的项目,需要的不仅仅是前端技能。其中还涉及到很多技术,比如:你要做个人博客肯定需要有一个后台服务器,要搭建一个服务器比如:Apache、nginx、Nodejs等。然后选择一门后端业务语言比如:Java、PHP、JavaScript、Python、Go等语言,然后选择一种数据存储方式比如:MySQL、MoongoDB、Oracle、Elasticsearch、Redis或者文件存储等存储方式存储数据。

        当然这些还远远不够,技术与技术之间的衔接点也是前端工程师不擅长的,比如:连接redis需要释放连接,连接数据库什么时候该释放连接,什么时候要一直持有连接。后端服务不是前端页面,刷新一下所有的东西重新开始。内存泄露、服务器资源打满不像前端那么难。

        我们举一个实际中的例子,我有一个同事叫小黑,是一名很不错的前端工程师。上层应用做的溜的起飞,Angular、React、Vue。以及各种周边类库用的滚瓜烂熟。我感觉业务层面让他做一个东西就难不倒他,下到JavaScript内能运行机制、内存CG流程无所不知,他之前问我的一个问题,我至今记忆犹新。『你说JavasScript里,是 + 号运算快,还是 * 运算快』。我如遭雷击......通过各种论证方式证明+号更快。但是最后,他让我执行了下面这部分代码,结果总是那么意料之外,有在情理之中。

var MaxTest = 10000000000;

var getNumber = () => {

  return 3;

  return Math.floor(Math.random() * 100);

};

console.time('加法运算');

for (let i = 0; i < MaxTest; i++) {

  let b = MaxTest + getNumber();

}

console.timeEnd('加法运算');

console.time('乘法运算');

for (let i = 0; i < MaxTest; i++) {

  let b = MaxTest * getNumber();

}

console.timeEnd('乘法运算');

        但是就是这样一个人,在突然有一个要做个人站想法之后,开发个人站的时候却处处碰壁。他的第一个问题就是不懂得任何后端语言,他个人对Go非常感兴趣,我也不知道他到底对开发语言有没有做过横向的对比。用他的话说凭直觉就行了,他要是都了解完,然后去对比估计他都不见得做技术了。就这样他在莫名其妙的情况下选择了Go。

        紧接着又面临一个问题是选择WebServer也就是服务器。好在他使用Go作为个人站的开发语言,Go的net/http模块跟,nodejs的http模块一样好用。所以WebServer这一环他可以暂时省掉了。

        紧接着又是数据库选型,他大学时候的MySQL学的还不错,然后又很渴望MongoDB这种Json形式的存储方式。纠结了很久之后,最后选择了他的大学。

        后来在他设计数据库表的时候又碰到了问题。什么样的值要用什么样的类型来存储,什么样的字段适合加索引,数据库中到底要存些什么东西。

        后来......

        后来.......

        后来他放弃了只做个人站。

        这样的一个技术牛人毅力在我的认知力应该是很强的,但是他仍然被这种困难打败,让我意识到一个前端工程师想要掌握后端知识,乃至转型成为一个后端工程师的困难之大,超乎我的想象。

        另外,也有很多研发的弟弟妹妹跟我反馈前端天花板低,成长受限。也来咨询我如何学习后端,或者转型成为一名后端工程师。所以就此挖挖坟,没隔一段时间更新一篇文章,讲解一下前端工程师要如何学习后端知识。我会以类比法来跟大家谈到这个过程,争取每一个后端知识点,能找到一个前端知识点进行类比对应,类比只是为了方便大家理解,千万不要以为他们是一个东西。

        


陈辰(CC老师)    [email protected]

你可能感兴趣的:(前端工程师吐后端工程师(第一讲)——前端工程师的尴尬)