刚从杭州参加完SegmentFault大会回来,内心有一些感悟不吐不快。
不得不说,SegmentFault举行的这次开发者大会是成功的,成功了吸了一批粉,小编的内心也是很激动的,除了见到了仰慕已久的高阳Sunny还有各位IT界大牛,另外还听到了一场场精彩的演讲。在这边我不得不说一次谢谢,感谢SegmentFault举行的这次开发者大会,另外还要感谢讲师的辛苦演讲,为我们带来了一场场别开生面的技术盛宴。
首先早上的主会场,分别对前端,后端,移动,运维等方面的技术做了一些演讲。当然作为一个前端狗,我最关注的还是前端方面的技术知识,这次的前端演讲由百姓网的前端工程师贺师俊,贺老师给我们带来的《JS@2017》。
说到js不得不说最近几年掀起的前端热,好多后端人员也转来做前端了。除了因为前端入门简单,还有是因为前端一直能够跟上时代的潮流,每天都在变化,所以从事前端工作的人员一直都在学习中,这样才不至于落后。
当然说到js我们不得不说ECMAScript 语法发展的一个历史,从1999年出来的ES3开始ES得到一个长足的发展,人们也越来越重视前端的一个发展过程,直到2009年ES5的诞生,前端迎来了一次大爆发,更加流畅的页面和性能,使许多人趋之如骛。越来越多的人学习前端也是目前市场的一个需要,前端真正开始得到重视,不会再像以前一样把前端归类为设计。
自从ES5发布以来,es6就以新语法、新特性的优越性吸引着众多前端开发者,虽然目前好多浏览器还不支持ES6语法。但是,这些都不能阻挡前端开发者们的热情,所以babel等编译工具的出现,它能将ES6语法转换成ES5标准代码,使得浏览器能够支持 。随着es6的发布,以后将会每年更新一个版本,虽然es6看起来和es4一样的复杂,但是其向下兼容的特性还是被很多人接受,es6除了提供了许多语法糖之外也解决了困扰众多前端工程师关于javascript模块化的问题,据不完全统计,每天都会有无数的模块包诞生,到目前为止,模块包已经达到36万+,不得不说js的发展速度是惊人的。
由此很多公司都开始利用一些合适的框架去搭建自己的项目页面。另外,不得不说讲师的语言组织能力非常棒。从中,我学到了讲师的很多学习方法,以及项目中的一些小技巧。不得不提上午的演讲我最佩服的还是覃建祥老师,他用《云计算时代的DevOps走向》这个话题除了体现了他的超一流语速外,还体现了他敏捷的逻辑思维和语言表达能力着实令我惊讶,他一个人的演讲抵得上其他讲师演讲的总和了,而且时间还控制在一个小时之内,不得不令人惊叹,有同学开玩笑他比周杰伦的rap说的还好,而且吐词清晰,干嘛不去做歌手,结果他笑着说唱歌不好听,挺幽默的一个老师,不得不为他赞一个。
本来一直在为午饭的质量担忧,直到看见那么丰盛的午餐。不得不说,segmentfault的门票真是良心价。
好了,开始进入正题,下午的分会场才是重头戏。下午有三个分会场分别是:前端分会场,服务端分会场,移动端分会场。当然还是要数大前端分会场的人最多,小编也是吃完饭就早早来抢位子了,不然看着后面排着老长队站着听讲座的也是够心酸的。
既然提到前端我就不得不说一下现在我们为什么要尝试前后端分离。
前后端分离的历史因素
随着现在前端技术的不断突破发展,前端越来越得到人们的重视,可能前后端分离早已经深入开发者们的心,但是据我了解还有很多前后端开发人员还是分不清哪些是前端该做的哪些是后端该做的,对于分工问题,我想大多数开发人员都经历过,因为刚开始没有前后端之分,所以好多人不明白怎么才叫做前后端分离。如果一个部门的后台人员既能够写后台语言又能够写前端,要么他是一个全栈工程师要么就是没有将项目中的前后端分离,甚至在他们看来,前后端分离就是一片未知的领域。
我曾经也亲身体验过,在我刚毕业呆过的一个部门,在那时候我也是刚入前端这个行业,在公司里面我只是写一些html以及css和js,然后后端直接套用前端的html页面,写成jsp格式,这样的情况也是司空见惯的,这样的方法是在前端还没有兴起时候的一种传统写法,我也曾经一度以为这些就是前端的工作,直到后来随着经验的积累,和常常浏览各大社会,论坛。才渐渐明白什么是前后端分离。就我当时的工作只能叫做前后端分工,并不能叫做前后端分离,所谓的前后端分离是将路由交给前端来掌控,后台只要写好api接口,然后关于所有的页面呈现还有js逻辑判断还有数据的填写都是前端的任务,因此,所有关于页面和数据的呈现展示都是前端的工作。
据我熟知的目前的大多数应用场景都适用前后端分离,当然除了一些电商公司的活动页面可能需要用到JQ的一些动效,让页面看起来更加的炫酷,在我看来JQ就是专门用来写动效的。当然可能有的时候因为公司的不重视,前端开发者又不去了解,因为前后端分离可能会带来更多的工作量和学习成本。往往这个时候前端人员不能占据主动常常被后端牵着鼻子走,只能是后端说什么就是什么。
为什么要前后端分离
随着前端技术的不断完善和发展,前后端分离已经成为大势所趋,我们将项目里面的页面做成单页面应用,然后通过路由来控制局部刷新。前后端分离不仅仅能够提升网页的加载性能,还能够使得用户有一个更好的体验,开发和维护的成本也大大降低,同时效率还能够得到提升,何乐而不为呢。
随着angular,reat,vue三大框架的问世,我们将可以构建一个无服务器端渲染就可以展示的页面,通过将路由交给前端来控制,可以完全实现前后端分离。下面是一段前端控制路由的代码:
通过上面的代码,我们可以看到前后端分离给我们带来的好处,通过局部更新加载自己所需的脚本样式,比那些一次性将整个项目的脚本样式加载完的页面的性能提高很多。当然我们可以尝试着自己去写一写代码,我始终觉得,只有在实际操作中才能真正体会到前后端分离带来的便捷和友好。当然前后端分离给我们前端开发人员带了更多的学习成本,前端的工作内容再也不是简单的切切图写写静态页面了。我们还要试着去处理各种交互,以及了解MVC思维,以及各种主流的框架体系。这也是为什么前端越来越得到重视。其实越往后你越会发现,前端越来越接近后端,但是两者却又是两个不同的东西,有着明确的界限。
前后端分离的优势
1、首先,前后端分离不再需要我们去在后端代码里面嵌套我们前端的代码,这样也不会傻傻分不清哪些是前端代码,哪些是后端代码,或者万一报错,到时候不知道是后台代码的问题还是前端的问题,这样大大降低了开发的效率。此外前后端没有分离我们还需要搭建后台环境,往往搭建环境也是很令人头疼的一个问题。这不得不逼我们去了解后台代码,这样增加了开发难度和浪费时间。前后端分离之后,前端和后端代码完全分离,前端控制路由,后端负责接口,大大提升了开发效率,前端也能专注于自己的代码。
2、前后端分离,使得前后端分工更加明确,大大的提升了开发效率,前端控制路由,实现页面的跳转,后台只要传数据接口就可以了。
3、前后端的分离也使得项目的成本大大降低,我们对代码的维护以及重构有了更加清晰的结构认知,改起来也方便。
前后端分离的感悟与收获
从学校毕业之后就进入前端这个行业,算下来也有两年了,从最初的切切图写写静态页面,到后来的前后端分离,以及三大框架的问世,前端的前景是越来越好,也越来越受各大公司的器重。前后端的分离,使得互联网公司真正重视起前端这个行业,这也使得前端在IT行业占有一席之地。
前后端的分离,也使得我们不再需要求助后端来帮助我们搭建后台环境,如果项目新增页面也不需要后台给我们添加,页面的跳转变得更加流畅,页面的加载速度变得越来越快,局部渲染加载的速度非常快速,页面的模板也可以重复使用。前后端分离真正给我们带来了很大的方便。
随着前端的快速发展,我们需要始终保持一颗学习的心态,去追求更新的技术,跟上时代潮流,虽然前端目前更新的速度很快,有精化也有糟粕,我们也一直在致力于对前端的一个整体优化,使得用户的体验更加友好,页面的渲染速度也越来越快。我们要始终处于不断学习的状态之中,不然就等着被淘汰。只有在互联网的大潮之中,我们才能碰撞出思维的火花,让我们拥抱未来,拥抱变化。