IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          鴻蒙2.0開源,H5前端開發的機會來了!

          • 發布時間:
            2020-09-24
          • 版權所有:
            云和教育
          • 分享:
          近日,華為發布鴻蒙2.0操作系統,該系統應用開發框架采用JavaScript作為開發語言,這對于前端開發工程師來說無疑是一個好消息!果然JavaScript才是全世界最好的語言…

          JavaScript優勢:

          • JS 生態圈目前來看形式很好,未來也是第一梯隊。
          • JS 語言發展迅速,開源社區支持廣泛,上手入門門檻遠低于 Java 和 Native 語言。后期希望可以原生支持 TypeScript。
          • JS + WebAssembly 性能還是不錯的,未來如果能加上 V8 速度會更快,不知道華為未來是否有能力自己做一個 VM 支持 WebAssembly。
          • Write once,run everywhere。目前來看是對 JS + WebAssembly 最好的描述。

          鴻蒙的 JS 框架 ace_lite_jsfwk,從名字中可以看出來這是一個非常輕量級的框架,官方介紹說是“輕量級 JS 核心開發框架”。其核心代碼只有 5 個 js 文件,大概也就 300-400 行代碼吧。

          • runtime-coresrccoreindex.js
          • runtime-coresrcobserverobserver.js
          • runtime-coresrcobserversubject.js
          • runtime-coresrcobserverutils.js
          • runtime-coresrcprofilerindex.js

          從名字可以看出來,這些代碼實現了一個觀察者模式。也就是說,它實現了一個非常輕量級的 MVVM 模式。通過使用和 vue2 相似的屬性劫持技術實現了響應式系統。

          在「鴻蒙 2.0」上,開發者只需編寫形如 Vue 組件式的 JavaScript 業務邏輯,即可將其渲染為智能手表等嵌入式硬件上的 UI 界面。

          這里將其分為自上而下的三個抽象層來介紹:

          1. JS 框架層,可理解為一個大幅簡化的 Vue 式 JavaScript 框架
          2. JS 引擎與運行時層,可理解為一個大幅簡化的 WebKit 式運行時
          3. 圖形渲染層,可理解為一個大幅簡化的 Skia 式圖形繪制庫

          這三個抽象層,整體構成了一套面向嵌入式硬件的 GUI 技術棧。不同于許多高呼「不明覺厲 / 深不可測」的輿論,個人認為至少對于 GUI 部分,國內凡是接觸過目前主流 Hybrid 式跨端方案或 JS 運行時研發的一線開發者,都很容易從源碼出發來理解它。

          對于「鴻蒙 2.0」在 GUI 部分的亮點,個人能想到這些:

          • 確實有務實(但和當年 PPT 介紹完全兩碼事)的代碼。
          • 不是 WebView 套殼,布局和繪制是自己做的。
          • 無需超過大學本科水平的計算機知識,也能順利閱讀理解。

          而至于明顯(不只是某幾行代碼寫得丑)的缺失或問題,目前看來則有這么一些:

          JS 框架層

          • 沒有基本的組件間通信(如 props / emit 等)能力
          • 沒有基本的自定義組件能力
          • 沒有除基礎依賴追蹤以外的狀態管理能力

          JS 引擎與運行時層

          • 標準支持過低,無法運行 Vue 3.0 這類需 Proxy 的下一代前端框架
          • 性能水平弱,難以支持中大型 JS 應用
          • 沒有開放 DOM 式的對象模型 API,不利于上層抹平差異

          圖形渲染層

          • 沒有實質可用的 GPU 加速
          • 沒有 SVG 和富文本等高級渲染能力
          • Canvas 完成度低,缺狀態棧和很多 API

          對于所有熟悉 JavaScript 的前端開發者們,JavaScript 被鴻蒙這樣的「國之重器」采用,可以大大增強前端的道路自信、理論自信、文化自信和技術棧自信。

          想成為國之棟梁嗎?來寫 JavaScript 吧!

          聲明:除云和數據原創文章外,分享和轉載的文章皆為促進IT技術的傳播,并不代表本微信贊同其觀點和對真實性負責,僅做交流學習使用,非商業用途。如有文章或圖片的原作者有異議或涉及版權問題,請立即聯系我們,我們將在第一時間進行改正或刪除,確保您的權益,謝謝支持!