canvas教程

近几年前端技术盘点以及 2016 年技术发展方向(3)

字号+ 作者:H5之家 来源:H5之家 2017-05-08 11:00 我要评论( )

模块加载上,经过了各派系的争论之后,流传下来几个不错的产品 SeaJS、RequireJS 等,那么那个模块加载器将成为工具平台中短暂的终点呢?似乎这些都不是。当我们按照规范中的方式进行模块定义,按照规范中的方式加

模块加载上,经过了各派系的争论之后,流传下来几个不错的产品 SeaJS、RequireJS 等,那么那个模块加载器将成为工具平台中短暂的终点呢?似乎这些都不是。当我们按照规范中的方式进行模块定义,按照规范中的方式加载定义的模块时,加载这个流程就显得不那么重要了,因为这些事情最后都会变成 shiv/polyfill 的事情,最终会变成浏览器的固有属性。

当一个东西在社区中被暴力追捧的时候,会有很多衍生的产品出来,当这些衍生物根深蒂固时,可能又会出现一个更加原生更加符合开发习惯的东西出来。就像 jQuery,我们为它编写的插件不计其数,而在工程化的需求冲击下,它却显得那么的弱不禁风,因为它关注的点和当前的发展态势不太吻合,仅此而已。

Mobile 的发展驱动着战场的转移

记得当年拿着 Nokia5230 学完了 HTML 和 JavaScript 的入门,那屏幕尺寸也就是三个手指的宽度,紧紧攥在手里看着页面混排效果极差的网页文档。

现如今,iPhone 都出到 6s 了,一个版本一个尺寸,而且尺寸越来越大,还有各种宽高不一的 Android 机器,种类繁多。以前的触屏是电阻式,只支持单点触碰;而现在电容式的触屏精度更高,还支持多指触控,这如丝般顺滑的体验在三四年前是完全体会不到的。曾经手机开一个程序久了就会卡,动不动还会自动重启;而现在的手机开一堆程序,完全无感知,这就是硬件发展前后的差异。

手机已经成为了人们生活中不可或缺的一部分,甚至成为了一些人身体的一部分,淘宝今年双十一的数据显示,国内移动端的消费比例已经远远超过了 PC 端,占比 68%。面对庞大的用户,我们的技术是否做好了充足的准备,这里还得打一个问号。

PC 上那一套经验不是直接搬到移动端就可以使用了,在移动端还需要解决更多的问题:

上面提到的问题很多已经有了优秀的解决方案,当然也有很多未提及的。WebApp 的性能、流畅度和稳定性远远不如原生应用,同时它也无法良好地运用设备提供的原生功能,这些都是大家转投 Native 的原因。

端的融合

不同分辨率的手机,不同物理尺寸的终端,为了保持良好的视觉体验和用户体验,我们不得不为每一个尺寸写一份 Media Query 代码,那么对应的,设计师也需要设计多套版式供前端使用,这给设计师、前端和测试带来了无尽的麻烦。为此,我们通过前端技术重塑屏幕,重新定义像素尺寸,使用流式布局,通过百分比来响应不同的终端尺寸。这是端的融合。

后续的 Mobile 的技术发展方向上,应该是相当明确的。很多公司都是三套人马维护三端的程序,iOS、Android 和 Web,而这三端做的事情都是一样的,一样的界面,一样的后端接口,一样的交互方式。为了能够快速响应业务的变更,我们不得不将三端合并为一端对待,用一套程序编程成三端代码,然后发布到三个平台上。这也是端的融合。React 系列技术发展到此,绝对不是终点,它只是一个探路灯,给我们照明了方向。

技术需要为业务做保障,而好的技术是能够及时响应业务的变化,我们不可能投入大量的人力在 Web 的修补工作上,通过开发统一工具,屏蔽端和端之间的差异,统一开发模式和开发体验,这才是 Mobile 的未来。

当然,回到我们之前说的规范和标准,我们目前所做的「屏蔽差异」工作,今后,也会有统一的标准来规范,目前手机厂商没有这个共识,是因为还处于当年 Chrome、Firefox 抢占 IE6 市场份额的阶段。端的最终融合在于一个统一的标准,以及强有力的执行。

栈的融合

我刚接触前端的时候,还没有听说「全栈」,Web 技术栈往小里说,包含了从前端设计、交互、前端实现、网络数据传输、后端实现、后端运维和数据库等几个方面,能短时间内从无到有实现这么一套系统,并且能够抗得住一定流量冲击的人,我们可以称之为全栈工程师。能够有架构有条理地实现这套系统,并且抗得住大流量、有集成测试、有监控的,这种我们可以称之为资深全栈工程师。现在不乏这种人才,也不乏自吹为这种人。

栈的融合得益于 Node.js 的出现,作为前后端分离的桥梁,它拉近了前端工程师与后端的距离,有的人在这座桥梁上卖力行走,渐渐的也从前端走进 了后端,甚至走进了后端的运维。至此,前端也拥有了部署和发布整个应用的能力,这是一个质的突破。

使用 Node.js,简单几行程序便能实现一个 web 服务器、便能搭建一个多人聊天的网页,它的便捷性可见一斑。NPM 社区的发展,沉淀了成千上万的组件包,一行命令即可获取,这种组件拼凑式的开发,任何功能的实现都不会显得太复杂,而这里的「不复杂」也蕴含了无数的坑坑洼洼,在这一层的融合上也会遇上不少阻碍:

JavaScript 从客户端的脚本语言纵身跃进进入了后端行列,而今也开始深入到移动端 Native 领域,确实是无孔不入,这可能就是语言的特性,也可能是技术本身就在寻求融合点,把有差异的地方全部躺平,然后用统一的方式去关注业务,关注用户。端和栈也在融合。

后端服务化,云数据,云安全

用户体验变得越来越重要,响应式技术的发展也是后续网页应用的一大特点,端和端之间的差异只是在表现上,数据这一层差异不是特别大,很多应用 PC 和 Mobile 共用一套接口,或者 Mobile 的接口在 PC 接口的基础上做了一层包装,对接口字段做了些许删减。后端为了响应各个端之间的数据需求,也需要关注数据的可利用性,接口包装的拓展性等,这是后端服务化的一个表现。移动端的开发上,前后端间隙十分明显,越来越多移动端应用的发布已经脱离了后端,前端完全通过异步方式获取数据。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Mysql To Charts(4)

    Mysql To Charts(4)

    2016-04-08 10:00

  • 前端技术 / HTML5

    前端技术 / HTML5

    2015-11-19 11:49

  • jquery 卡通实现循环执行

    jquery 卡通实现循环执行

    2015-11-11 09:05

  • html5canvas学习记录

    html5canvas学习记录

    2015-10-07 19:16

网友点评