
近期,在 ECMA 标准化组织的 TC39 技术委员会上,阿里巴巴前端标准化小组与淘系技术提出的 JavaScript 标准提案《Error Cause》进入了 Stage 3,将开始在 JavaScript 引擎中开始实现,并在浏览器、Node.js 实验性实施,是中国首个推动到 EcmaScript 的语言,将成为官方标准的自主技术提案。前端

ECMA 是一个负责信息技术和通讯系统的国际标准组织,全称欧洲标准化信息和通讯系统协会。其中 ECMA/TC39 是技术委员会第 39 号技术委员会,主要负责 JavaScript 相关标准的制定,包括:
-
ECMA-262,即 JavaScript 的标准 ECMAScript 定义;
-
ECMA-402,即 ECMAScript 的国际化标准 API(ECMAScript Intl API)定义;
-
T39 的成员主要包括:谷歌、微软、苹果、阿里巴巴、360、华为、腾讯等;
提案连接:
https://github.com/tc39/proposal-error-cause
这个提案为 Error Constructor 新增了一个可选的参数 options,其中能够设置 cause 而且接受任意 JavaScript 值(JavaScript 能够 throw 任意值,如 undefined 或者字符串),将这个值赋值到新建立的 error.cause 上。
错误缘由的特性在许多其余语言中都有相似的设计,如 C# Exception Cause,Java Exception Cause,Python raise exception from cause。一样的,在庞大的 JavaScript 生态中也已经有很是普遍的使用,如 verror 每周有上千万的下载量,@netflix/nerror 每周有数十万的下载量。
由于 Error Cause 之前没有标准化的参数定义及官方实现,因此容易丢失 error 的属性或须要写比较多的代码自定义等,而且开发者工具也难以依赖于非语言特性的自定义方案。本提案将 cause 写入了语言定义,能有效记录错误缘由的值,可以让开发者工具、应用监控如 Alinode 都能基于 cause 属性值获取错误逻辑链条,从而提高前端开发效率,下降重复开发成本。
做为阿里巴巴在加入 Ecma 标准化组织 TC39 技术委员会后的第一个落地的提案,这只是淘系技术在技术标准化上很是小的一步。
咱们之因此进行这些提案,也是由于随着云原生技术在前端工程方面的大规模应用,语言的观测性能力格外重要。语言的观测能力直接影响到语言运行时的性能与成本。咱们维护的 Node.js 发行版 Alinode 会在云原生时代的继续追求成本和性能的平衡。将来,咱们也会结合阿里巴巴在步向云原生的技术业务场景,继续增长投入诸如异步上下文等关于观测性的核心语言特性提案,寻找 JavaScript 中长期以来困扰开发者的异步编程上下文追踪难题的解决方案,帮助基于云原生的业务建设更加精准、高机器效率、高工程效率的观测能力。
众所周知,Serverless 可以有效的优化成本,而“弹性”则是这一过程必不可少的手段。为了更好的实现弹性,启动速度是很关键的一环。Alinode Cloud Serverless Worker 按照 Web API 标准提供 JavaScript 运行环境,具备亚毫米级启动,业务应用 100ms 内启动并响应的特色,将来还将能够经过 Snapshot 快速水平(甚至跨服务器)扩展。
淘系技术很是注重标准化的参与和建设,咱们也会继续从内部的技术场景中挖掘编程语言的拓展场景,探索商业技术、开发者与编程语言之间的深层次编程模型。同时,咱们在前端其它核心领域的标准化也有所布局,好比 W3C 相关提案也在逐步推动中:
-
滚动回收容器 Sliver:
https://github.com/w3c/chinese-ig/issues/239
解决 Web 标准下滚动视图的复用回收问题,客户端开发中有 RecyclerView/UITableView 来实现滚动回收的布局容器,提案的 Display Sliver 定义了容器的布局方式以及当子元素滚动出 viewport 后的回收特性。
-
经常使用手势事件:
https://github.com/w3c/chinese-ig/issues/240
解决 Web 标准下集成经常使用的手势能力,客户端开发中有各类原生自带的如 Pan、Long Press 、Drag 等在 touch 之上封装的经常使用的基础手势能力,这使开发者能够更方便地直接使用这些手势能力,去快速开发一些交互更复杂的页面。提案指望在事件层作进一步的扩展,开发者能够直接在节点上绑定监听相关的手势事件,并在行为触发时派发相关事件。



做者|淘系技术web
编辑|橙子君
编程
出品|阿里巴巴新零售淘系技术浏览器
本文分享自微信公众号 - 淘系技术(AlibabaMTT)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。服务器