在我的印象中,一提到软件工程,首先不会想到的是前端这一块,大概是因为以往工作偏向的缘故。这两年最大的感触就是前端发展的很快,时下的前端开发也远非从网络中抠一段jQuery代码就能搞定功能这么简单。
AJAX的出现第一次将前端的请求异步化,局部刷新使用户体验提升了一大截。NodeJS的出现则将前端的发展推向了高潮,一大批基于V8引擎、基于NodeJS之上的开发工具脱颖而出,极速的提升前端开发的效率、效果。
下面从几个方面,来梳理下近阶段关于前端的一些思考,仅供参考,欢迎在留言区讨论。
前端工程师岗位
但凡有点规模的团队,前后端分离开发是必然的。前端开发岗们之前多是由后端开发人兼职,由网页制作人员将静态效果制作完后,交由后端开发人员将动态功嵌入进去。现在这么做的团队也有,当然这样效率不是最高的。前端工程师独立岗位的出现,将前端工程化带近了一步。这一部分专职从事前端开发,而无须再关心后端数据如何组装、如何处理、如何存储,将更大的精力投入到终端展现上面。
面向浏览器编程
(之前一直准备写篇文章叫“面向工资编程”)这个词确实是最近一个月才接触到新名词,被ie6折磨过的朋友相信很能体会背后的意味。各种浏览器终端的出现,且不少以未遵守JS/CSS规范的形式出现,导致开发终端展现时不得不考虑各种浏览器、浏览器的不同版本的兼容性。时至今日,前端技术的发展亦足以解决这个问题。Babel的产生,编程时只关注语言即可,在构建时,由其产生低版本JS以满足低版本的兼容性。PostCSS的面世,也使CSS开发时无须担心多版本、多种类浏览器的兼容性,好消息时,各家浏览器也在积极的向规范、向标准靠拢,以使终端展现能够更加一致。
开发效率
一大批时下优秀的JS开发框架、脚手架,将JS开发提高到了前所未有的高度,用纯jQuery的朋友都少了吧,开始转向Vue、React、ng2的怀抱了吧。Yoeman、Vue-cli等脚手架工具,可以让你轻松搭建一个前端项目。CSS预处理、预编译框架更是将这个弱编程的语言中加入了编程能力,less、sass已经在很多项目中采用。任务处理器更是极大的解放了人力,gulp、webpack几乎成了现代化前端开发的必备。本地化开发时,通过事件监听,直接热部署将结果呈现到终端,而无须在反复刷新页面、清缓存刷新页面。Mock的出现更是将前端开发与后端开发隔离,不再相互掣肘。
模块化组件化
提到工程化总离不开模块化,提到了模块化,似乎组件化也很有必要,这是个一环套一环的依赖。但实施起来亦是相当不易,特别是有期限项目性工程,交付第一,交付结束如无后续升级,基本不会进行模块化组件化优化。产品化项目比较适用,随着功能迭代推进,模块化更有利于开发解耦,提高复用性,对后期维护也很友好。
Node的出现,使模块化更加简便,你会发现模块化项目中,require、import、export应用的如此频繁,CommonJS,AMD/CMD在ES6之前在模块化研发起着比较重要的作用。ES6中更是原生就支持模块化,(ECMAScript简称ES,JavaScript只是ES的一种实现方式)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。