我所亲见的前端技术变革
进入正文之前,先声明,我并不是前端工程师,对前端的理解也比较“肤浅”。只能站在一个带队者的角度,阐述我的团队最近几年所使用过的前端技术方案。知乎上 @狼大人 邀请我回答“好的前端主管是如何带队的”,遗留了很久,这里也算是补上这次邀请的答案吧。 我眼中的原始时代 06年开始接触JavaScript,当时处于新项目启动但是需求待定,所以有了一段时间的闲散。白天上班无事可做,随手翻了本JavaScript来看。不记得书名,但是一发不可收拾,连续读完了两本书:《JavaScript 权威指南》和《JavaScript高级编程》(前两天在一个team member桌子上又见到了这本高级编程,发现厚度已经是当年的2倍了,你说这技术变革的快不快:)),边读边写了很多从“hello world” 级别的代码。 除了这个,我发现要写个动态页面,还要去搞懂DOM树,然后一并研究了CSS还有HTML。 反正什么都不懂,写个menu点点改变效果对自己已经满足感十足。 得益于这段空闲时间,一个月后的项目启动,顾爷“夸”我前端“牛逼”,然后就把项目前端最难的部分丢给我,“多级菜单”,对,就下面图示的这种:
哈哈哈,纯JS/CSS写了一周搞定。因为这个任务,聚餐的时候lead喝醉还和大家吹牛逼“你们不要瞎逼逼,谁也没大房厉害,可以写多级菜单”。。。 你知道这话放到现在,要多少个草泥马从我眼前飘过? 这个历史(别笑,也许真正的高手在当年已经创造出了BootStrap般神器,只是我等不知而已)。 原始的时代,那个时候,我们的第一武器就是:
JQuery的崛起 JQuery的第一个版本应该是在2006年8月出来,第一个可用的版本在07年,但是在中国火的满大街,应该到08年了吧?在我的印象里,在某C某V的项目里,开始大面积应用JQuery。 JQuery + JQuery UI + Plugin火的烂大街。当年最爱做的事情,就是收集好用的JQuery plugin,看到一个收藏到收藏夹一个,以至于到10年,点开那满满的收藏夹已经可以滚几个屏幕。你要知道,在当年,那可是宝,为了能在家、在公司、在任何一台电脑上都可以访问我的宝贝收藏,尝试了N多收藏夹自动同步还有管理的工具。 想来,整理我这堆JQuery plugin的收藏所花掉的时候,都要远远大于我写代码的时间了......
不折腾就不会死的年代,这个时期:
这个时期,火到Angular出现。 胖前端时代:踏步迎接Angular 我一定相信,在前端人的世界里,绝对不是从JQuery直接迈进了以Angular为代表的时代,其间可能经历了JavaScript 框架A,改进JQuery某某弱点、JavaScript 框架B 改进前端编程某某弱点,等等。 或者,在高人的眼里,Angular不能代表一个时代,而是其他某某框架。 但是,在我还在推崇“前端编码,JQuery大法好”的时候,某大神和我说,“喂,你们用过Angular吗?” 为了不落后,花了一个下午玩了一把,然后在新的项目里,就推行了。 然后从那之后的新项目都开始了MVVM/MVW的转型,而那个代表就是Angular。也是从那个时期开始,身边的人都在讨论Angular。
跟着潮流,从“瘦前端”到“胖前端”转型。也是从这个时期开始,在项目的设计思路中,我们开始把基于H5的“页面”也考虑成了“客户端”,服务端的角色由提供数据并渲染变成了仅仅提供数据:
现状和前瞻:趋于标准化 不知道是不是应该感谢Google还有Chrome,因为在我的记忆里,Chrome推动了前端标准化的进程,随着它的市场份额越来越大,前端工程师们的痛苦也越来越小。 当然,我的理解并不一定正确,我并没有去验证,去找寻一下历史资料,到底是哪些公司和社区力量,推动了HTML5,CSS3等标准化的进程。不管是谁,他们的贡献都值得感谢、铭记和尊重!另外,微信帝国的扩张,多少也对前端开发的发展,做出了不可忽视的贡献。 另一个不可忽视的贡献,就是ES6(现在叫ES2015,从名字就能意识到,这个代表2015年大家就可以用了)。JavaScript做为“浏览器里的汇编语言”,多年来发展缓慢,所以才有了TypeScript/Dart,才有了CoffeeScript,但是不管出现多少新的变种,都无法取代它统治浏览器端编程。ES6算是一个巨大的进展,内置了公有私有Class、模块,等等等等,让JavaScript向高级语言、更易工程化方向迈出了重要的一步!这里也应该再次向开源社区致敬! 今天,我们的新项目,技术选型已经开始拥抱新技术:
不得不提的Node.js 很多人提到Node.js都会说,跑在服务器端的JavaScript。大家更多关注的是它的能力,而忽视了这种能力对生态系统的影响。
现在,稍微上规模的项目,不管是任何语言做为你的主力开发语言,你很难看到里面少了Node.js的影子,它无处不在!(我并没有去找数据验证,也没必要,重要的是,如果你做前端,Node.js可以带给你200%的生产力;如果是做服务端,Node.js生态中的很多思想都值得你去借鉴,所谓“技多不压身”!) 谈谈我是如何带前端技术团队的 在我团队里,每个前端工程师都是我的老师,很多时候,评估一个页面效果的开发,我都需要请教他们。但是这并不妨碍我和他们沟通,带领大家完成项目的交付。
写在最后,可能每个人对前端的发展变化的理解都不一样,本文仅以我的视角,回顾了我所理解的变化。这么多年带了很多团队,交付了很多的项目,但同时我也有自知之明,也许我只是井底之蛙,看到了我能看到的世界,但是没有关系,重要的是,每个人都需要找到自己对这个世界的认识,找到拥抱这个变化的世界的方法,独一无二的方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |