
近期,在 ECMA 標準化組織的 TC39 技術委員會上,阿里巴巴前端標準化小組與淘系技術提出的 JavaScript 標準提案《Error Cause》進入了 Stage 3,將開始在 JavaScript 引擎中開始實作,并在瀏覽器、Node.js 實驗性實施,是中國首個推進到 EcmaScript 的語言,將成為官方標準的自主技術提案,

ECMA/T39 是什么?
ECMA 是一個負責資訊技術和通信系統的國際標準組織,全稱歐洲標準化資訊和通信系統協會,其中 ECMA/TC39 是技術委員會第 39 號技術委員會,主要負責 JavaScript 相關標準的制定,包括:
-
ECMA-262,即 JavaScript 的標準 ECMAScript 定義;
-
ECMA-402,即 ECMAScript 的國際化標準 API(ECMAScript Intl API)定義;
-
ECMA-404,即 JSON 定義;
T39 的成員主要包括:谷歌、微軟、蘋果、阿里巴巴、360、華為、騰訊等;
Error Cause 提案簡介
提案鏈接: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 之上封裝的常用的基礎手勢能力,這使開發者可以更方便地直接使用這些手勢能力,去快速開發一些互動更復雜的頁面,提案期望在事件層做進一步的擴展,開發者可以直接在節點上系結監聽相關的手勢事件,并在行為觸發時派發相關事件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276964.html
標籤:AI
