每一个前端都是一个坠入凡尘的折翼天使,他们既有着严谨的逻辑思维,可以用密密麻麻的二进制代码,实现各种复杂的功能;他们也具备高超的审美能力和艺术天赋,对细节之美有着近乎疯狂偏执的要求,对用户体验敏感到不能差一丝分毫。他们是在用弹钢琴的手,用画画的手,用艺术家的手,运指如飞地舞动在冰冷的键盘上,编织着能够愉悦众生,变化万千的美妙界面。
前端是一个值得尊重,值得骄傲的职业,与所有前端共勉 。前端又是一个特别的职业,特别之处在于它的技术迭代非常快,一天一个样,一天一个新技术出现,一天一个框架,一天一个轮子。
你需要不停的学习,三天不学习就感觉落伍了,两个月不学习,整个技术体系完全变了个样。比如刚学会了用angular1做了个项目,angular2就出来,和1.x完全两回事,刚准备学angular2,react出来了,react掌握了,Vue又火了,学了Vue,reactnative风头正经,reactnative项目上线了,weex又要追上来了。刚掌握了es5,es6火了,和es5差别还蛮大,es6学了一半,es7又来了,webpack熟悉了,rollup席卷而来,grunt还在途中,就被抛弃转投gulp有没有?
不像后端,技术更新不频繁,相对比较稳定,可能几年才有一次大的变化。男孩,你是不是入错了行?
既然前端技术不断变化,那我们唯有不断学习,才能跟上脚步,要知道落后是要被淘汰的。那么2017到底有哪些主流技术需要我们跟进掌握呢?知道了要学习哪些技术,我们才不会迷茫,不会焦虑,就像在夺宝的途中有了藏宝图一样。
1.javacript语言标准esmascript
前端中最有技术含量的应该就是javascript了,一个前端和一个低级前端的差距就在这里了,js是前端中最重要也是最基础的技术,是一个合格前端必须要掌握的编程技能,那么现阶段来看,es7已经被支持了,es5的所有知识肯定是要掌握的,es6也是必须要掌握的,现在的很多大公司已经全面使用es6的语法来编写js程序了,es6中比较常用的语法是 let/const ,变量的解构赋值,箭头函数,promise异步对象,import/export 模块加载等,需要熟练掌握,推荐学习文档http://es6.ruanyifeng.com和https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference.
es7因为内容较少只有async/await异步解决方案,最好也能了解和掌握
2.framework前端流行框架
学完了基础,就好比练就了内功,现在需要学习一些高阶的框架了,框架让开发变得简单,也提高了效率,2017年jQuery+bootstrap肯定是过时了,一大波MVC,mvvm框架来袭。代表是Vuejs和reactjs,都可以简单快速的开发前端视图层,区别是react偏向于组件化编程和jsx混合式编程。大型单页前端应用的数据层适合用flux进行各个组件状态统一管理,那么前端技术栈就是vuejs+vue-router+vuex ,而react的前端来说就是:reactjs+redux。我们公司的几个项目现在主要是用vuejs+reactnative,所以我们自己实现了一个底层的flux层 ,然后又集合了vuex和redux的特点,写出了两个插件适配,就构成整个的flux+vuejs/reactnative 的前端架构方案。
3.模块化
随着项目越来越大,功能越来越复杂,参与的开发者越来越多,维护的成本是呈指数级的上升,代码模块化是必然的选择,而且通过异步加载代码,按需加载,降低了网络传输带宽,加快了页面响应,也能在一定程度上提升了网页性能。首先需要的就是包管理package manage,常见的必须掌握的就是npm,bower等,引入package时遵循commonjs语法,commonjs语法需要掌握。随着es6的流行,es6的module加载和导出也大行其道,import和export也必须掌握。按功能划分模块后,根据模块分成一个个文件,最后要说的是模块加载器module loader,可以有效解决文件各模块代码冲突和依赖。目前业界有两种主流的模块加载规范,cmd(通用模块定义)和AMD(异步模块定义),区别在于是否是延迟按需加载。AMD的实现是requireJs,cmd的实现是seaJs,seaJs崇尚懒加载,即as lazy as possible,seajs在国内用的比较多。
4.打包构建工具
代码最终要测试上线,要发布到生产环境,就需要一套自动化打包,测试构建工具,构建工具一开始就是grunt,现在已经过时了,因为后来的管道流式的gulp出现了,迅速席卷了整个业界,现在也是主流的首选构建工具,当然也要配合编译打包工具,曾经最流行的预编译打包工具就是webpack,不过近期出现的rollup以及简单和打包后体积小的优势,迅速在业界蔓延,似有取webpack而代之的趋势。随着es6的普及,带火了一个编译工具babel,用于让不支持es6语法的环境将es6转为es5运行。所以构建发布必须要掌握的工具是:webpack,rollup,gulp,babel
5.html5
这几年来html5成为前端的标准登上了主流的舞台,如果一个前端还没html5的常见技术的,真的是要面壁思过了。常见的有html语义化,CSS3,webfont,flex布局。js方面就是本地存储,canvas,websocket等。另外随着浏览器给web赋能的增强,web开发者也能实现原本只有客户端软件才能实现的功能,比如说这两年直播的火爆,浏览器在web端也开始提供实时音频,实时视频传输的接口。这样基于浏览器,网页就可以轻松实现在线直播,实时语音对话,实时在线聊天。这就是webrtc技术,是要做直播的前端必须掌握的技术点。
6.nodejs
nodejs的出现让前端工程师利用js也能开发服务端了。能做的事更多了,全栈工程师变得触手可及,大前端也成了不可逆的趋势。而且前端学会了nodejs,原本需要后端参与的相对简单的功能,自己就可以搞定,减少了沟通和联调成本,大大提升了开发效率。所以作为一个不断学习不断成长的前端,你也需要掌握nodejs,需要掌握它的基本API,文件操作,请求处理等。其中koa和express是最流行的nodejs开发框架,学习成本低,大大简化了开发流程,实乃nodejs必备利器。
前端的技能树还是非常大的,而且枝繁叶茂,细节非常多。但是2017主流的技术点就是上面6大点,一旦熟练掌握,相信我,你一定收到无数的offer...