前端回忆录

10/25/2015, 1:11:04 AM 57 30291
在我刚刚参加工作的时候,我只会使用dw做一些非常简单的页面,当时对前端的认知主要是在div+css这样的层面,尽管从近几年看来,那种所谓的布局方式本身就是一个伪命题。但在那一年(2011),我还是对它充满着向往的。有人告诉我,会了div+css,你才能找到好工作。考虑到生存的迫切性,我没日没夜地钻研别人的css,一个一个地照着写,而主要的挑战在于浏览器的兼容性,尤其是面对大boss IE6的时候,常会不免感慨人生。尽管备受各式各样的蹂躏,仍然无法阻断我对知识的渴望。当我已经能够勉强驾驭html css的时候,又有人告诉我,必须要会js。噢,我的上帝,该来的终究还是要来!既然时代这样要求,我岂敢不从。二话不说,果断埋头苦学。然而,事情的进展远比预想的残酷,我先前还以为只有css存在浏览器的差异化,原来js,同样存在兼容性障碍,这简直是一场史无前例的精神折磨?但幸运的是,一个在前端领域拥有最长时间统治的基础库试图认识我,虽然我还完全不认识它。没错,不用我说你也知道它是谁了。至此开始,借助对jQuery的认知,我正式踏上前端的漫漫征途,兼容性问题似乎已经不再是一项艰苦卓绝挑战。

在那个jQuery风靡的年代,我们似乎都习惯忘记JavaScript语言本身。正是在这样的大背景下,我尝试了对所谓的jQuery插件的追求,于是在2012年,layer出现了。这是我第一个,也是迄今为止唯一的一个以jQuery为依附的开源组件。显然,它为我赢得了一些观众,使得我在今后的好几年都未曾放弃过她。借助这股风浪,我对前端的探索也进入白热化的阶段,因为时代已经不仅仅要求我掌握html css js那三驾马车了,我必须保持奔跑,才能跟上别人的步伐。没错,jQuery仍然在流行,直到它的插件机制,成为一种波澜壮阔的累赘,人们终于无法忍受在一个页面中出现几十个js文件的状况了,越来越多的批判声不绝入耳。于是以requirejs、seajs为首的前端模块化概念被推送到历史的舞台,尽管requirejs早已经出现,但在国内,模块化真正成为一种话题,主要是得益于seajs的流行,AMD和CMD成为一种前端概念化的名词。我首先尝试使用seajs是在我的博客(旧版),当时其实我自己也有写过一个叫lily.js的库,但里面只是对js文件的加载做了一个简单实现。虽然到了今天,模块化的风潮已经过去,但仍然有相当数量的web应用仍然采用早前的jQuery模式。这说明一种技术的变革,是需要一个长足缓冲的时间。

但我们前端技术的革新,显然已经不管你缓冲不缓冲了。它光速前行的步伐,让前端进入一个超出常理,且疯狂造轮子的黄金时代。2013年,Node.js在它走过的第四年,终于在国内由早先几年的星星之火,开始大面积燎原,一系列以Node平台为宿主的框架、工具如雨后春笋般出现,随着Express、Grunt、bower、webpack等等的流行,Node.js也进入了web应用领域以及自动化工具时代。当然,与此同时,前端的一线战场已经由PC转移到了移动端,HTML5、CSS3来势汹汹,并开始大面积应用在各种项目中,于是我们又熟悉了一个名词:响应式,但它只是前端技术一个微不足道的组成,除此之外,以Angular为核心的mvvm的出现,似乎已经在试图宣判jQuery的死刑(但jQuery毕竟太硬)。这一年,是前端一个真正春天的来临,可谓百花绽放!但我们必须承认,这种快速的变革,直接导致国内前端圈的普遍浮躁。

于是终于在2014年,一系列诸如前后端分离、前端工程化等概念被陆陆续续推出,作为理论上的技术前沿,尽管活跃在各大一线的互联网平台下,但始终无法进入大众领域,所以你会看到,大部分平台仍然在使用几年前的技术潮流。但除此,各种花式轮子更是星罗密布,比如试图取代Grunt的Gulp、试图与Angular并肩的Avalon,等等。并且在这一年,微软宣布不再对xp进行更新和维护,W3C也发布了HTML5的正式推荐标准,这一系列事件都意味着前端技术已经不再是浏览器端的混战,而作为普通的前端从业者,永远不会有停歇的时候,你必须涉足更宽广的领域、掌握更多的技能来拥抱这个时代。

今年,是我从事前端的第五年,身边的人好像越来越牛逼,新一轮的技术花样汹涌而至,而我却仿佛在自动过滤诸如React等逼格体,开始探索最适合自己的开发模式。历史总是有着惊人的相似,一如五年前的感受,重新以近乎小白的方式,回到了技术的起点。时间在变,你的技术认知,在某种绝对的空间里,被牵着鼻子增长。但跳出这个纬度,似乎又什么都没有改变。有时你知道的越多,才知道不知道的更多。

作为技术人员,我们自然不能滞后于时代,但也无需附庸时代!

贤心 · 杭州

贤心