当前位置:主页 > 网站优化 >

玉伯:如何从前端技术进化到体验科技?

作者: 奕星SEO 分类: 网站优化 发布时间: 2019-08-16 07:14 内容来源:网络整理阅读量:

玉伯:如何从前端技术进化到体验科技?

2018-08-11 分类:WEB开发 阅读(590) 评论(0)

王保平,花名玉伯。熟悉前端和SeaJS的人一定对这个名字不陌生。作为前端领域的一枚大大大牛,他现在担任蚂蚁金服体验技术部负责人。本文,他分享了他从前端一路进阶升级到体验科技的个人思考,并详细介绍了体验科技的历史及未来发展,以及本次体验科技开放的愿景。前端的本质是什么?随着移动和物联网的发展,前端技术又会有哪些变化?希望通过本文内容大家能对这些问题以及体验科技有更进一步的了解,也欢迎大家留言交流。

我第一次接触前端开发是 2002 年大学期间,转眼 15 年多。这些年我一直在思考一个问题:究竟什么是前端技术?很长很长一段时间,前端技术的定义非常清晰,就是浏览器端的 HTML、CSS、JS 技术。我们用这些技术做出各种各样的页面,我们是离用户最近的程序员。

玉伯:如何从前端技术进化到体验科技?

记得 2009 年开始接触 Node,很快前端技术开始爆炸性增长。最开始的变化,是前端压缩工具从基于 Java 的 YUI Compressor 开始切换到基于 Node 实现的 UglifyJS 等工具。除了前端工具上的一路狂奔,在服务端领域也出现了 Express 等框架,前端开始通过 Node 完成服务端模板甚至整个 MVC 层的开发。在蚂蚁金服,服务端层我们更多把 Node 定位为 BFF 层实现,BFF 是 Backend For Frontend 的缩写,翻译成用户体验适配层。

BFF 模式下,整体分工很清晰,后端通过 Java 等语言负责服务实现,理想情况下给前端提供的是基于领域模型的 RPC 接口,前端则在 BFF 层直接调用服务端 RPC 接口拿到数据,按需加工消费数据,并实现人机交互。基于 BFF 模式的研发,很适合拥有前端技术背景的全栈型工程师。这种模式的好处很明显,后端可以专注于业务领域,更多从领域模型的视角去思考问题,页面视角的数据则交给前端型全栈工程师去搞定。领域模型与页面数据是两种思维模式,通过 BFF 可以很好地解耦开,让彼此更专业高效。

除了服务端的渗透,从 2013 年开始,阿里开始无线 ALL IN 战略,这对前端影响非常大。有相当多的前端开始转型为 iOS 工程师(转型为 Android 的比较少,有部分 Java 工程师转型成了 Android 开发),没有转型的,也开始大量投入到 Mobile Web 开发。这个大背景下,前端与客户端技术开始互相融合,特别是在容器层。从 2015 年开始,物联网 IoT 逐步兴起,前端开始涉足 IoT 设备上的应用研发。端的本质是 devices,台式机、手机、IoT 设备都是一台台 devices,很多会直接被用户使用,有用户使用的 devices,就会有人机交互需求,就会有前端的工作价值。前端是离用户最近的工程师,这个定位一直没变。

非常有意思的是,在移动端的架构里,这几年也出现了基于 RPC 接口 + 网关 + BFF 的架构体系,在研发效率、网络性能等方面均有优势。随着 IoT 应用的涌现与复杂化,我相信最终也会出现 BFF 架构。BFF 模式不仅仅是一种技术架构,从社会分工角度讲,BFF 更是一种多元价值导向的分层架构,每一层都有不错的空间去施展,不仅能发挥工业社会双手的作用,还能使用上双手上面的脑袋。齿轮不再是被动跟着转,而是开始拥有自驱的转动力。同一时期,业界也出现了一些类似的职业融合。比如 DevOps 倡导开发也懂运维,不少大公司在推行开发也懂测试,测试则转型为更专业的质量工具部门,还有前端也懂设计的 DesignOps 的出现等等。各种全栈概念的涌现,都是在重新探索更合理的分层协作模式。纷纷扰扰,成败如风。

补充一个说明,当年提出的前后端分离,并不准确,这些年一直努力纠正为前后端分层的理念。专业的分工协同对效能的提升很关键。全栈的含义是指分层演化后,每一层的技术栈要求,是每一层横向技能的全,而不是纵向跨层的通(纵向跨多层都能通的人才非常少,就如当今社会已经非常难诞生博物学家了)。不断探索更好的分层协作是有意思的,这就如人类家庭里夫妻的关系一样,男权、女权都不可取,社会的演化最终会视人为人,每个个体平等、自由,社会会以一种必然的不可阻挡的形态往前演进。

回到前端发展历史,前面说了这么多,只说了一件事,前后端分层协作的各种模式。协作的边界是数据,后端提供数据服务接口,前端消费数据实现人机交互。不同模式下,BaaS(Backend as a Service)的含义各有不同。在 BFF 模式下,由于 BFF 层的运维部署需要,前端还需负责 BFF 层的 PaaS 平台建设。不同模式下的工程体系各有不同,工程的本质是让一群人做好一堆事,涉及代码规范、协作流程、运维部署、性能与安全等很多领域,这里不再一一展开。


本文链接地址:http://www.seohuizhou.com/webyouhua/1448.html
上一篇:<<前端进阶学习路线(完整版)
下一篇:最适合程序员编程刷题的网站,你知道几个?>>