Skip to content

1.5 Serverless 时代

前端的边界探索,从客户端展开,以跨端为目标,用一套 JavaScript 代码生成多端平台,以此来实现大前端的统一。虽然在这条路上还不算尽善尽美,但各家公司的跨端方案已基本趋于成熟,并且已经运用到生产环境中。

客户端大局已定,但前端还没有停下“征伐”的脚步,再次将目光瞄准了服务端。这一次的主角是 Serverless。

Serverless 从字面上来看是“很少的服务”,也叫无服务。Serverless 本不属于前端技术,而是一种云原生开发模型(后端的一套技术方案)。但 Serverless 的出现使整个后端服务体系高度抽象,极大地降低了服务端的开发门槛。

Serverless 把这些复杂的运维、部署和解析的工作都屏蔽了,用一种极其简单的方式实现,因此一些不了解服务器、不懂运维的人员也能轻松开发服务端应用,这为前端开发者带来了无限可能。

1.5.1 函数即服务

函数即服务(FaaS)是一种面向函数构建和部署软件的方式,即云函数,是 Serverless 的最终表现形式。以前前端的函数都是“本地声明,本地调用”。现在云函数单独部署在云上,供前端远程调用。

在云函数的内部,数据库操作可以被封装成 JavaScript 类和方法。在编写一个云函数时,可以直接调用数据库类的方法来实现数据的增、查、改、删。对于前端来说,这相当于抹掉了接口这一层,同时接口后面的数据库、部署和解析也都统统不用前端开发者关心,前端开发者只需要关注如何编写函数,以及如何实现业务逻辑即可。

云函数的这种新型的开发模式,彻底放开了前端开发者的限制。在这种模式下,前端开发者不再只面向前端开发,而是面向整个应用开发。这就要求前端开发者在完成传统前端工作的同时,还要编写云函数,并将云函数与前端结合调试,最终交付一个完整的应用。

未来 Serverless 普及后,会再一次打破前后端分离的开发模式,转变为基于 JavaScript 的前后端一体化开发。关于这个方面目前大型企业也正在研究,并且已经推出成熟的框架。阿里巴巴的 Midway.js 和字节跳动的 Modern.js 都是在一体化开发方向上比较成熟的探索。

从最早的 PHP 模板渲染,到几年前出现的前后端分离,再到未来的前后端一体化开发,正好与“分久必合,合久必分”相吻合。但不同的是,前端一步步发展壮大,逐步走到了应用开发的中心。

1.5.2 前后端一体化开发

FaaS 带来的开发模式的变革,使创建后端服务像创建一个函数那样简单。在这种“无服务”的状态下,前端会发生一次颠覆性的变革。

从诞生之初开始,前端的职责就是围绕浏览器进行面向客户的 UI 界面开发。虽然后来有了工程化和各种增效工具,但是“为用户开发 UI 界面”的本质没有变。前端对接数据的方式从“模板渲染”变为“接口获取”,但数据的管理一直是由后端开发者负责的。

但在 FaaS 模式下,前端开发者除了担负传统的界面开发,还要担负数据管理的工作(编写云函数操作数据),此时不再由后端提供接口,数据对接需要前端开发者自己开发和调试,这就要求每个前端开发者必须有全栈开发的能力。

与此同时,市场对前端开发者的要求也会大大提高。在面向应用开发后,前端开发者首先要转变的是思维模式,要从“应用”的角度而不是“前端”的角度看待问题。一直以来,应用的逻辑重心偏向后端,前端开发者不甚愿意了解业务,对业务方面的思考比较浅薄。Serverless 对前端开发者的全局观和业务思考能力有更高的要求。

本书的第 11 ~ 13 章会带领读者全栈开发一个综合实战项目,项目的 API 部分使用阿里云的 Serverless 函数计算来实现。

在这个项目中,读者可以体验“前端+Serverless”的全栈开发流程,从头开始实现一个完整的应用,并且配置和编写服务函数与前端对接。这部分内容非常有意思,相信读者能从这种全新的开发模式中看到未来。

1.5.4 本书实战用 Serverless 做后端

本书有两部分实战介绍,第一部分是在第五章的 Vue3 记事本实战,用于快速掌握 Vue3 语法。第二部分是最后一章的综合实战,这部分对标一个完整的中型应用开发流程,是一个包含前后端到上线的全栈项目,这个项目的后端部分会基于阿里云的 Serverless 函数计算实现。

在这个综合项目中,我会带领大家一同体验前端 + Serverless 的全栈开发流程,从头开始实现一个完整的应用,并且配置和编写服务函数与前端对接,这部分非常有意思,相信你也能从这种全新的开发模式中看到未来。

不过打铁还需自身硬,在真正动手之前,我们先把基础打牢,学好了框架和基本的工程化,后面才能事半功倍。

本章小节

可以将本章介绍的前端发展的几个时代总结为如下形式:

  • 附属的时代:MVC 模式下的前端。
  • 分家的时代:前后端分离模式下的前端;
  • 工程的时代:前端工程化的进阶;
  • 大前端时代:前端在跨端方向的统一。
  • Serverless 时代:面向未来的前后端一体化开发。

当前,前端整体还处于大前端时代,多端开发繁荣,工程化也在不断升级。这个时代的前端一直处在源源不断的变化之中。很多人都在感叹新技术更迭太快了,学不动了,此时选择一个方向就变得尤为重要。

Serverless 下的前端会逐渐成为应用开发的主导,对前端开发者的要求也会越来越高。因此,前端不会那么轻易地触到天花板,偌大的未知世界还等着我们去开拓。