架构师(2020年1月)

本期推荐内容:把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?DDD:架构思想的旧瓶新酒
用户头像
作者: InfoQ 中文站
下载此书
架构师(2020年1月)

卷首语

前端热词中的趋势:Flutter、WebAssembly、Serverless ······

作者:张之栋

2019 年的大前端领域虽然并没有出现什么颠覆性技术,但是从 Flutter、WebAssembly、Serverless 等技术的火爆程度来看,大前端正呈现出一种融合的趋势。

Flutter

Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。然而,在今年的谷歌 I/O 大会上,谷歌公布了 Flutter 实现 Web 访问、提供自定义图像分类模型的新特性,并介绍了 Flutter 在桌面系统及嵌入式设备中的应用与未来的发展。从此,Flutter 项目不再是一套单纯的移动框架,而是成为了一款可在 Web、桌面、移动以及其他各类设备平台上运用的多平台框架

Flutter 之所以如此流行,在于它的三个特点:精美、高效开发、开放。

  1. Flutter 具有丰富的 Widget 库、 Material Design 和 Cupertino 风格的系统库、组合式的 API 、像素级的控制力可以使开发者便捷地构建精美的应用。
  2. Flutter 特有的 Dart 语言是为数不多同时支持 JIT 和 AOT 编译的语言。开发期使用 JIT 编译,支持广受欢迎的热重载功能,开发者可以像 PS 图片一样来开发应用,开发效率高。发布后 Flutter 使用 AOT 编译, Dart 代码最终被编译成 ARM 汇编指令,运行快速。
  3. Flutter 是开源项目,其整个的开发工作流都是完全遵循开源项目的运作来完成的。

WebAssembly

WebAssembly 是由 Google、Microsoft、Mozilla、Apple 等几家大公司合作发起的一个关于面向 Web 的通用二进制和文本格式的项目。

具体来讲, WebAssembly 是一种新的字节码格式,旨在成为高级语言的编译目标,目前可以使用 C、C++、Rust、Go、Java、C#等编译器(未来还有更多)来创建 wasm 模块。

wasm 模块以二进制的格式发送到浏览器,并在专有虚拟机上执行,与 JavaScript 虚拟机共享内存和线程等资源。

WebAssembly 处于编译阶段的中间码环节,它能做到像 Java 字节码一样,一次编译,处处运行,具有跨平台特性。与此同时,作为中间码的 WebAssembly 能够省略编译前端的步骤,开发者可以将现有的用 C、C++ 等语言编写的库直接编译成 WebAssembly 并运行到浏览器上,这与 JavaScript 的实时编译相比,确实性能优势显著。

除此之外,WebAssembly 还引入了 GC / DOM / Web API 等一系列特性,DOM 和 Web API 很重要,这意味着 WebAssembly 可直接和 html 以及浏览器进行交互,从技术角度来看可以完全取代 JavaScript。

Serverless

Serverless 译作无服务器,虽然目前还没有一个具体的定义,但在行业内,Serverless 的解读主要有这样 2 种:Serverless 架构和 Serverless 产品。

Serverless 架构完全依托于云厂商或云平台提供产品完成系统的组织及构建,用户无需关注支撑应用服务运行的主机,只需关注于系统架构、业务开发、业务支撑运维上。

Serverless 产品则是指无需理解、管理服务器,按需使用,按使用付费的产品,其中包含了存储、计算等多种类型的产品,而典型的计算产品则是云函数形态。

Serverless 被认作是云计算发展的未来方向,尤其是在前端研发领域,使用 Node 开发云函数,可以让前端工程师更加专注于业务逻辑,实现全栈工程师的角色转变。而且,从目前 Serverless 的实践情况来说,它可以为前端开发带来 2 点好处:节约成本和提升研发交付速度。

对于初创公司来说,采用函数计算的 Serverless 不仅可以节省大量的资金,还会拥有更多的时间去开发业务功能。而且,Serverless 的服务供应商,往往会提供一系列的配套服务。这种情况下,使用某一个云服务,就和调用某一系统中自带的 API 一样简单,这样就又可以节省很多的开发成本。

简而言之,Serverless 底层架构做的事情越多,业务层面需要关注的架构和运维工作就越少。

而且,在 Serverless 的模式下,全栈开发的工作模式会执行得更加顺畅,开发者不需要在架构和技术栈上花费过多精力,Runtime 和语言也没有强制依赖,这样完全面向业务的模式,使得整个项目的研发交付速度得到提升。

其他:BFF、中台······

除了以上的 3 个热词外,前端领域还有很多火热的技术,如:BFF、中台······

也许这些乍看起来似乎与前端并无太大关系,但在前端的发展中,它们却又不可避免,就像一种瓶颈,遏制着前端能力的延伸。

换句话说,前端做到一定阶段会变得越来越聚焦,随着资产(代码)的积累,很多东西也都会以自动化的方式呈现,再加上这些火热技术的迭代发展,前端领域碎片化的部分将不断的融合在一起,并借助这种融合,进一步推动大前端时代的到来。

目录

热点 | Hot

把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?

理论派 | Theory

看完这篇你就知道什么是无服务器架构了

推荐文章 | Article

当心“中间件”

我们是怎么做到每小时推送百万级通知的

观点 | Opinion

DDD:架构思想的旧瓶新酒

我们为什么用 gRPC 取代了 Kafka

特别专栏 | Column

大数据容器化,头部玩家尝到了甜头?

完整微服务化示例:使用 Apache ServiceComb 进行微服务开发、容器化、弹性伸缩

免费下载此书(PDF)
免费下载此书(ePub)
免费下载此书(MOBI)

评论

发布