大前端,这个词从刚刚出现在技术人员的视野中,到今天已经过去有一段时间了,大前端也从起初那个模糊的概念逐渐变得清晰起来,可到底什么是大前端?作为一位前端技术开发的从业者,应该如何去面对大前端时代的来临呢?今天我们就以大前端的发展趋势为题来聊一聊。
当我们在谈大前端的时候,我们谈的是什么?
作为一个新兴的技术领域范围,大前端在不同的语义环境下,有着不同的解释和含义,我们就以如下这三个视角去看大前端并做逐一的分析。
Node.js 与前后端分离
在绝大多数的前端开发者口中,大前端有时与 Node.js 一起讲,有时与前后端分离一同讲,事实上,大前端概念也正是由广大前端开发者提出的。
过去几年,前端技术经历了爆发式的发展,这种发展最重要的推动者之一就是 Node.js。Node.js 为前端建立了与系统之间沟通的桥梁,从此前端技术不仅能在服务端大放异彩,并且在本地的前端开发工具与工作流上大展身手,前端从此被解放,JavaScript 统治世界的论调一度甚嚣尘上。
不过,当人们冷静之后,发现 Node.js 在服务端并没有太多的优势,再加上 Node.js 本身技术发展的一些波折,导致它在服务端的应用并不理想。但尽管如此,广大的前端开发者还是取得了一些阶段性胜利,其结果就是前后端分离。
在传统 Web 开发时代,前端页面模板是由后端生成的,导致在页面需要频繁修改的时候,效率极低。前后端分离指的是后端只提供接口,前端对页面有完整控制,同时通过中间层将前后端隔开,在这里对数据进行抽取、聚合、分发等操作。这个中间层,通常也是由前端开发工程师负责。
从这种意义上讲,大前端的原始定义可以称为前端技术的扩大化,包括 Node.js,同时对 Web 页面有更强的控制权,开发也将承载更多功能的页面。
此处划重点:基于 Node.js 的前后段分离是大前端的重要技术。
大前端与泛 GUI 交互
移动互联网时代到来之后,移动端 App 成为新的主流,而浏览器的地位也逐渐降低,传统的前端开发遇到尴尬。
当然,前端并未真正遭遇困境,以 PhoneGap/Cordova 为代表的 Hybrid 开发,以及内嵌在 App 中的 WebView 开发,再加上微信成为主流之后的小程序、小游戏开发,前端技术也慢慢地在移动端扩张领土。
但在那时,人们提起移动开发,主要指的还是 iOS 与 Android 这两种原生开发技术,这一情况随着 React Native 的发布得到了改变。它能解决原生的跨平台代码复用、动态化等痛点,又避免了之前 Hybrid 的性能问题,因此受到广泛关注。
随着 React Native 的加入,前端的技术栈再次被扩展,并且 React Native 让我们发现,其实通过加入一个虚拟视图层(Virtual DOM)后,逻辑操作和模型部分的代码都能够得到很大程度的复用,并且在已有的实践总结中,大部分 React Native 代码都得到了较高比例的复用。
如果说前后端分离是前端在纵向上变大,那么这种跨不同终端的前端技术则可以说是在横向上变大。
再次划重点:Reactive Native 移动端 APP 开发是大前端的新兴技术。
大前端研发团队现状
目前在国内,不少一线互联网公司比如美团点评、饿了么、网易杭研都有叫大前端的团队或者在对外时使用该称谓,不过,由于之前大前端并没有明确的定义,这些团队的人员构成并不相同,它们都是各个公司在自己对大前端的理解,以及对公司业务的支持需求下设立的。具体情况如下(可能有偏差):
美团点评大前端团队:包括 FE、iOS、Android 开发,以及一些工程化工作。
饿了么大前端团队:以 FE 为主,包括 Node.js,以及 Weex 等。
网易杭研大前端团队:包含 Web 前端、PC 客户端和移动端。
从这些一线互联网公司团队组建方式的演进,我们不难发现,大前端已经是未来发展的潮流。
大前端技术开发者的晋级之路怎么走?
那么,作为一位在大前端时代的前端技术开发者,我们应该做怎样的准备来及时跟上技术发展的浪潮?综上所述,我们不难得出以下结论:
基于 Node.js 的前后段分离设计模式是大前端架构演变的必由之路
基于 React Native 的新一代移动 App 开发技术凭借其优势已然有超越原生的趋势
新型大前端团队的组建已成现代互联网公司技术团队的标配
如果你是一位前端技术开发者,或者你是一位互联网公司的技术团队管理者,是否觉得应该先放下手头的工作,来提升一下自己的技术栈或公司的职能架构?