对于很多从事IT行业的人来说,就不得不赞叹其发展的速度,可能一项技术用个两三年就有点过时了,这其实也是整个互联网大环境下迅猛发展的缘故,马云曾经说过,很多人觉得互联网已经发展得差不多了,貌似现在已经非常非常智能了,其实真正互联网开始发展到如今也仅仅才十几二十年,仅仅是开始,未来也许不可想象,犹如哆啦A梦的口袋,永远不知道什么时候它就掏出一个让你眼前一亮,为之赞叹的东西,而对于前端来说,可能发展要比后端来得更为迅猛,更加快速,可能以前仅仅靠着html+css+一丢丢框架经验就能安稳找到工作,但现在呢?去看看开源社区,去看看github时隔不久就冒出一个开源框架,node,vue,react,更有无数较小的框架如ionic,bootstrap,特殊应用型的three...以后还会更多,特别是H5,css3这些基础的东西大升级,less,sass,webpack各种极易维护的新技术及程序预编译处理机制,以及越来越多的开发者,应用商放弃万恶的ie(请暂时允许我这么说= =),对于来发者来说会越来越友好,开发者有更多的时间用在对前端更深层的思考上,整个前端,整个交互的界面,整个展现在用户观感中的那个视野,会越来越震撼,VR,AR这些其实仅仅是开始,不仅仅是体现在绚丽多彩的特效,更多的是体现在用户在用这个产品的时候,会越来越舒服,怎么舒服怎么来,会让你的懒癌无限期的延长,会的。
讲到这,可能你会问,诶,jquery呢?跑哪了,它不是也是个框架么?是的,它是,但发展到现在来说,它更类似于一种生态,一种可以解决80-90%问题的生态语言,很多时候它就像是javascript一样亲切,甚至对于现在大多数开发者来说,jquery用的要比js多得多,因为写得更少,做得更多,css中的less(为什么叫less呢,想想= =),也是一样的,兼容这个东西呢,得考虑,特别是有历史遗留的,而jquery生态就是一个非常好的选择。
对于每一位前端开发者来说,入门很简单,你会个标签+一点点css样式布局即可(这是ie曾经统治多年的那个时代,当然也才仅仅几年,十几年前之间),但你会发现知识的更新速度快到你难以想象,新技术层出不穷,新的开源框架团队一个接一个,优秀的开源框架更是一箩筐,你会发现有点跟不上或者甚至说会的那点技能很快就不值钱,你需要不断的学习和更新知识,是的,能码代码的很多,码高质量代码的也不少,但能完全明白怎么码,要码什么,用什么码的就不多了,这些都先不提,单单论知识面吧,前端现在干什么事呢?它要干或者说它已经可以干UI+前端+后端这样的事了,当然了,肯定没另外两个专业的干得好,但很多时候对于一些项目来说,够用就好,你会说前端怎么干后端的事呢?阿里这个肯定是大伙都熟知的,双11这样的时候,在12:00那一秒钟踏入的那一刻,你可以想想那中间的选单-购买-支付有多少?也许对于用户的我们来说就简简单单一个点点点,但是呢你得这样想,全国,甚至全世界都在这样点点点,这中间得产生多少的交互?这个峰值能让这世上绝大多数的服务器集群奔溃,阿里怎么解决呢?可能到这你已经猜到了,是的就是用前端框架node.js来布局架构的,那这个node是不是特别牛呢?也不是,只是它的处理机制刚刚好,也非常适用于这种形式的高并发处理。
那前端又是怎么干UI的事呢?专业的UI,优秀的UI前端没法比,也不可能去比,术业有专攻,那UI核心的那些是什么呢?(本人仅仅是名小小的前端,说得不对请见谅)我认为有不少,而图形的处理,色彩及页面风格的调配算是其中的两方面,而前端呢?不用去干这些,已经有很优秀的前端框架给我们提供好了,里面的主题风格也许不是很优秀的,但就目前来说也还是相当的漂亮的,这里再说下,技术的选型永远不是这项技术多么的牛逼,多么的炫酷,而是这项技术适合,它适合所以选它,这个是什么呢?你应该也猜到了,是的,它就是bootstrap,当然还有它的一些子集比如zui,当然这个给我最大的启发不是它方便了前端多少多少的开发,而是它的栅格系统,移动互联网到来之前,那个时候大家用的都是PC端,网站什么的也不用考虑多终端的兼容,多终端的自适应,所以大家就用px啊,百分比啊,用的都感觉很不错,反正能用,对用户使用影响不大,那当手机端来了的时候呢?前端的开发者们意识到,写单单一个前端样式已经不足以应付越来越多种屏幕的显示方式,如何在这众多的终端中让整个的用户体验,那个展现在用户视野中的东西尽可能的达到观感上的最佳,是一个必须且迫切要解决的问题,这时候前端开发者们怎么做呢?(我根据事实来猜哈)都是程序员,那多种应用啊,有多个条件啊,肯定必须得if判断啊,这必须的啊!当然前端不叫if,它有个很高大上的名称叫多媒体查询,当然这个比较麻烦的是你还是需要写多个样式,外联的内联的不管,反正你得写多个,这就很烦了,就像明明我只需要执行一句,你一个if就得多一个代码块,好多个if甚至变成一大串,当项目结构很庞大复杂的时候,你会发现得多了很多很多的原本不需要的样式表,有问题就得解决,那这时候前端的那些大神们又怎么做呢?嗯,你想象下,我不论你这个屏幕,这个设备,或是渲染这个html的这个浏览器窗口有多大,我都给分成多少格,Excel(Excel这个软件其实是一个非常笨的东西,为什么呢?它的行列数其实都是固定的,好像以前比较低级的版本是512列*1024行,稍微高版本的好像到65535了,只不过这个数很大,绝大多数人用不完的而已,连多少列多少行都得是固定的,是不是很笨?当然它是个很了不起的应用,也有可能是里面软件底层架构冲突。)各位应该都用过吧,一个个的格子,但不同的是这里的格子数列数是固定的,可能你屏幕大,界面很宽,那又怎样?只不过拆分成的这些单元格大一些就是了。那组成这些前端页面的基本组成单位不再是定死的固定像素了,这在大多数的时候就可以很好解决了(当然还有rem这个也是很优秀的多终端显示的方式),也许你会说bootstrap这个是给低级开发者或是给外包用的,我不能说你没有道理,但也许几年后bootstrap这个东西不适用了,但里面栅格系统这个思想,这种模式一定还会存留,会延续,变成推动前端开发的一艘动力航母,一直不断的向前。
前面好像谈了一大堆貌似还没谈到前端到底是怎么干UI的事,好吧,漫谈,我们是漫谈,别在意细节,总之一小段话概况就是,项目一般开发的前工序流程是UI把产品经理跟客户达成一致的需求还原成一系列psd图,这些psd图里面是已经具备好后续整个系统的风格及色彩搭配了,前端再把这些图还原成页面就可以了,不用考虑UI的事,那bootstrap这个东西呢,它就是把一些常用的psd图中的东西先弄成一个个具有特定风格的组件供前端调用,前端可以直接同产品经理来对接,虽说没有了psd图,但最终完成的界面风格及色彩搭配也不会很差,还很漂亮(就目前来说),对于终端用户来说,其实他们是不专业的,甚至他们连一些需求其实有时候都不是特别清楚,可能我们弄了个方案给他们看,诶诶诶,对对对,就这样的,嗯,还是重申一句,技术的选型不是要多苛刻,要多高级,多新,多炫酷;够苛刻,够高级,够新,够炫酷就可以了,强调一个够字,由于要做多终端的兼容适配,没法像以前一样1px都不放过,那不现实,意义上也不是很大,可能对于UI来说,黄金比例就必须是0.618, 0.62,甚至0.6181都不行,但在用户的眼中,其实它区别真的不大,0.62可以,0.63也可以,当然并不是倡导乱来,得有原则,底线是不能触碰的,但上面预留的这个操作空间是可更改的,这不仅仅是节省开发成本,更重要的是极快的提高了开发效率,一个产品抢先发布那么几天,可能最终的结果就完完全全不同,这就是很多时候经常听到的一句调侃,嘿,程序员,程序猿,又得加班了,没办法啊,赶项目进度啊,你要先人一步啊,但项目任务还是那么多,要减少时间只能拼命挤,这是没办法的。这也就是为什么要组件化开发的原因所在,代码的复用性高,意味着你不用重新写,不重新写不是代表你不会,这是一个误区,不会和不重复做一件会做的事是两码事,当然,组件化也给了很多前端新人便利以及不思进取的温泉,这种只能说因人而异吧。