我的十年前端生涯
Posted 田想兵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的十年前端生涯相关的知识,希望对你有一定的参考价值。
工作了十多年,也做了十来年的前端,从一个码农的视角,来看待整个前端发展史,希望能有所收获吧。我会从我的工作历程来看中国(或者说是杭州)的前端发展史。
我大概是从2010年开始从事前端工作的,我记得上一份工作还是从事的asp.net开发,算是一个写简单业务的程序员吧,当时我在一家做游戏的公司开发网页策略游戏,可能大家不太清楚是干什么,但网页游戏在那两年确实很火也很赚钱。就是造房子出兵占地之类的,有公司月入几百万。当时我还不算前端,公司也没有所谓的前端一岗,即使是需要写大量js的游戏,也是前后端一把棱。当然,因为做这些东西,也让我对界面调试有了一点点了解,并产生了一点点兴趣。然后我离职了,去投简历,我当时工资好像是3k吧,然后想找个3.5k的程序工作,找了一圈,发现都不适合,然后偶然间看见一家创业公司竟然在招会js的前端开发,然后我就去了,然后我就开始从事前端的工作了,当时前后端还没有分离,使用的方式仍然是前端的代码写在后端的服务上,也没有模块化的概念,主要就是做切图布局和js交互还有ajax,当时刚开始确实有点痛苦的,因为之前我只是会调试一些简单的样式和ajax,并不会切图和写布局,于是我就每天中午休息时间拼命的学习网页三剑客的使用,还好,一两个星期后,基本上就没遇到很卡住的问题了。
所以我认为前端的第一个阶段是切图+html+css+jquery,这里面占比我觉得比较重的还是布局和jquery吧,因为要兼容ie678这种浏览器,所以调试兼容也很耗时,不过还好jquery的使用没有兼容问题。
干了没多久,我又换了一份工作,是做行业管理这种,当时我是以开发入职的,但面试官又觉得我应该做前端,这个时候在招聘网上也很少出现前端这个岗位的,应该杭州是不超过10家吧。这时我的工资好像涨到了3.8k,一个平稳的涨幅,在这里我需要做的又与上一家不同,不再去做切图布局的活了,因为有美工去做,当时美工也不是前端,前端也不叫美工,有人说早期的前端是美工,其实是错误的,从来就没有出现过美工和前端混为一团的情况,至少我没遇到和见到过。美工把设计好的图切成html,然后我们再拿这个html拿上代码逻辑和业务逻辑,我们做mvc中的view层开发,做到bll层结束,另有人专门做接口层。这里前后端也没有分离之说,因为view层本身就是包括前端和后端业务开发的。
第二阶段的前端开发应该是 jquery + 业务逻辑层编写。工作量占比的话,可能差不多是4成写jquery,6成写后端业务代码。这一种形式持续的时间应该比较长。
又是一年,来到了2011年,我换到了一家做社交的公司,这里的后端是php,于是前端做的页面需要用apache来运行,后端提供接口即可,基本上算是前后端分离了,算是杭州比较早做到前后端代码分离的公司了。由于是社交这种toB的产品,交互会更复杂一点,所以前端的主要工作就是排版和写js交互。当时我的工资好像是6k,到我离开的时候是8k左右。这在当时我觉得算有点点小高了。
第三阶段的前端开发主要是以js交互+界面排版为主,工作量占比为js6成,排版4成,仍然需要兼容ie678。前端模块化已初步呈现。
再后来2013年,开始接触seajs和requirejs,这时的前后端已基本完全有了模块化的概念,你可以使用模块化完成公用模块抽离,然后各种复用组装,说到seajs,可能就不得不提下阿里了,阿里确实推动了整个前端界的发展,并不是说seajs多好,而是他带动了一股风气,当玉伯名声大躁的时候,前后端分离也越来越普及,这就是名人效应了吧,虽然require更好用也更早出来,但前后端分离的普及,确实更多的要归功于seajs,这时我的工资也达到14k,当时比较流行的框架和库是extjs、dojo、easyui,还有一些其他的mvc型的前端框架,我没用过就不提了,我还是坚守在jquery阵营。这里不得不提下前端构建工具,grunt一下子就火了,这种配置化的打包工具很好用,前端仿佛进入了一种大跃进的时代,grunt出来后,立马就被gulp秒杀,由于grunt文件操作的成本过大,gulp的高效就优势明显了,然后webpack也横空出世,好像要为配置化的grunt打抱不平。当然node.js在其中最是耀眼。
第四阶段的前端主要是以grunt.js打包在模块化的js编程为主,这里js代码的工作量接近8层,排版样式被弱化,浏览器多以ie8+为主
来到2015年,移动端的火爆,同时也引领了程序员的进化,大量的app涌入市场,再加上guo家对互联网的支持,p2p、o2o如雨后春笋般出现,我也不例外的换了一份跟移动端有关的工作,做微信商城,这个时候,前端最火的技术是全栈,就是号称前后端客户端一把梭。当然jquery系还有一个zepto在支撑,于是,我几乎每周写一个插件,一年下来也算累积了几十个jq系列的ui插件了,可惜时代已经抛弃了jquery。然后由于大量这种p2p、o2o公司的创立,导致供不应求,前端的工资也水涨船高,特别是g20又吸引来了一大批的高材生,房价也应声上涨,我好像正拿着16k沾沾自喜的时候,突然一大票20k+的人(或者说是招这种人的公司)出现了,这些人有一个共同点,就是浮躁,能力不见出众,但有人愿出高价,于是乎,我也立马投身进入了,找了家22k的公司,看着好像要赶上城西的老破小的房价了,可是转眼房价就翻了一番,而你却无力追赶,这时候最流行的三大框架是angular、react、ember,在国内应该是angular和react二分天下,还有一些backbone的流民,当时vue好像还没出来吧,我经过仔细的分析学习后,发现他们的学习难度是ember>ng>react,然而ng的编写方式完全是偏后端的写法,我觉得ng能火真的是被吹起来的成份居大,什么mvvm完全是炒概念,当然这个概率后来也被vue炒了一遍。当时react火的很大一部分可能是因为reactNative,因为react虽然简洁明了,但入门的门槛确实有点高,就说那个环境,在没有react-create-app-cli的时候,我也是搭了几天,不过我还是投身到了react的怀抱。
第五阶段的前端主要是在框架的选择中,比较流行的框架有react、angular、backbone、reactNative,这一阶段就是华山论剑了,各种框架技术层出不穷,当然很大一部分还是因为移动端的发展导致的,因为移动端的兴起,原来前端最头疼的兼容性问题一下子好像消失了,变成了手机适配和jsbrige,当然nodejs的火爆也降温了,全栈的说法好像也已达到顶峰。
任何事物都是如此,物极必反,移动端火得快,凉得也快,企业家们好像突然就意识到了,还是toB赚钱,toC太烧钱了,烧不到上市你就倒了,最后小程序战胜了客户端,pc和移动h5又回到了父子阵营,这个时候就有人吹玉伯,大家都去搞移动端的时候,只有他驻守在pc端,我不知道具体情况如何,但事实是,移动端的发展确实如流星一般划过,耀眼但不持久,但如果你把移动h5看成原来的ie的一个版本的话,其实也就那样了。说到这里,我又换工作了,来到了一家做银行金融的公司,主要就是toB的业务,新的技术好像也就electron吧,不值一提,然后转眼之间,一呆就呆了五年,这五年里,整个前端行业的发展好像也一直停留在g20后的那段高光时段,似乎懂一点理论+基础就可以轻易找到20K左右的工作了,然而供需关系正在发生改变,越来越多的人转向了前端,有培训的,有从后端转职的,有学校里就学前端的,反正人是多了,公司也多了,有人的地方就有江湖,前端开始想办法争话语权,开始做一些业务层的开发工作,好像又回到了我的2010年,新的技术也大多是围绕着自动化、工程化这些名词来的,果不出意料,angular基本消失在前端圈里,由vue来顶替它与react一争高下,当然,我一直是站在react这一阵营的,vue不出意外的话,会逐渐变成当初的backbone。
第六阶段的前端我认为是百花齐放的,基本上react、vue都占有一席之地,然后还有一些做node.js做ssr的,我是认为使用node.js做ssr与我当初把页面放在jsp、asp、php似乎也没有什么太大的进步,我尽量去避免走回原点。
纵观我的前端工作生涯10年里,其实前端的技术革命还是有迹可循的,天下大势,合久必分,分久必合,也没有别人说的那么大的变化,react从六七年前就开始流行了,现在也变化不大,vue基本也算是ng的一个子集,nodejs更是早在十年前就大火过一把,直至现在,也只是沦为一个打杂工。每一个阶段,似乎冒出了一些新的旧东西,但我们只要不怀疑,坚定往前走就行了。何以为专家,某一领域的专长得到大家的认可即可。如何做到这一领域的专长精通,只有在这一领域不断的深挖才行。
以上是关于我的十年前端生涯的主要内容,如果未能解决你的问题,请参考以下文章
justjavac:从辍学到成为Deno核心代码贡献者,我的十年编程生涯