滴滴開源輕量級跨端開發(fā)框架:Hummer

歷時兩年的深度打磨伏嗜,滴滴普惠泛前端團隊和滴滴 R-Lab 泛前端團隊聯(lián)合打造的超輕量級動態(tài)化跨端開發(fā)框架 —— Hummer遍膜,終于開源啦汉买。

它由極具精簡的 Hummer Core 和高可擴展的 Tenon Reactive Framework 組成壤蚜。目前該方案已在滴滴聚合收銀臺、代駕司機端伟件、代駕乘客端、跑腿騎手端议经、跑腿商戶端斧账、貨運司機端谴返、貨主端、兩輪車咧织、外賣等集團內多個業(yè)務線中進行了大規(guī)模落地并穩(wěn)定運行嗓袱。

image.png

業(yè)務背景

過去兩年隨著業(yè)務多品類、多場景的快速拓展习绢,對研發(fā)團隊的吞吐能力提出了更高的要求渠抹。如何在保持團隊整體規(guī)模不變的前提下更高效地支撐業(yè)務的快速發(fā)展,成為了團隊的首要考量毯炮,而跨端開發(fā)則成為了我們的首要選擇逼肯。在調研了業(yè)界眾多跨端方案之后,發(fā)現(xiàn)在包體積控制桃煎、整體穩(wěn)定性棉圈,以及上手成本等方面决乎,都無法很好地滿足我們的需求。在此背景下,普惠泛前端團隊和 R-Lab 泛前端團隊進行了深入地合作蛙婴,于 2018 年年底發(fā)起了 Hummer 跨端技術項目,旨在以較低成本的投入菌赖,產出一款具有高生產效率的動態(tài)化跨端開發(fā)框架汗贫,有效整合團隊內部前端和終端開發(fā)資源,真正提升團隊整體的開發(fā)效率耿战。

技術優(yōu)勢

正如 Hummer(蜂鳥)的名字一樣蛋叼,具有小巧輕盈的體態(tài),迅猛強健的翅膀剂陡,以及色彩艷麗的外表狈涮。

  • 超輕量:小于 1M 的編譯產物,能以極低的包體積成本接入到 App 中鸭栖,打造極致輕量優(yōu)勢歌馍;

  • 易上手:Hummer API + Tenon Reactive Framework,兼顧客戶端和前端的開發(fā)體驗晕鹊,造就極低的學習門檻松却;

  • 高可用:已在滴滴內部多個業(yè)務中得到完整驗證,整體 Crash 率低于 0.01%溅话;

  • 高性能:基于原生組件和模塊晓锻,可以最大化利用原生渲染的性能優(yōu)勢以及平臺能力;

  • 跨平臺:一套代碼可以編譯并運行于 iOS 和 Android 平臺飞几,使用 Tenon 可以快速兼容基于 Vue 開發(fā)的 Web 應用带射;

  • 動態(tài)化:利用 JavaScript(以下簡稱 JS)解釋執(zhí)行的特性,可以快速部署動態(tài)頁面循狰,配合 Hummer Nest 平臺可以實現(xiàn)云端發(fā)布窟社;

▍ 簡單演示

為了讓大家對 Hummer 有一個直觀的了解券勺,先來感受一下分別使用 Hummer API 和 Tenon 開發(fā)的 HelloWorld 頁面對應的代碼。


demo 代碼及效果展示圖

如上圖所示灿里,Hummer 同時支持偏向原生開發(fā)體驗的 Hummer API 開發(fā)模式和偏向前端開發(fā)體驗的 Tenon(兼容 Vue)開發(fā)模式关炼,在不久的將來,我們還將支持更多開發(fā)框架匣吊,如 React儒拂、Angular 等。

技術架構和跨端體系

Hummer 以 JS 引擎為基石色鸳,在保持對 JS 引擎最少特性依賴的前提下社痛,實現(xiàn)了類似 React Native 的 Fabric 引擎直通架構,使原生對象和 JS 對象能夠相互調動命雀,實現(xiàn)了同步視圖渲染蒜哀,使其充分利用原生渲染的性能優(yōu)勢(目前已支持 JavaScriptCore、V8吏砂、Hermers撵儿、QuickJS 等業(yè)內知名 JS 引擎)。同時狐血,通過組件自渲染能力淀歇,幾乎完美控制視圖渲染的每一個細節(jié),再配合經過調優(yōu)的 Yoga 布局引擎匈织,抹平了兩端視圖布局差異浪默,使兩端視圖保持了高度一致(性能更佳的自研布局引擎開發(fā)中)。

如下圖所示缀匕,我們拋棄了業(yè)界其他跨端框架普遍采用的 DSL+VDOM 的技術實現(xiàn)纳决,以換取接近原生的開發(fā)體驗和性能。但同時弦追,我們也提供了具有響應式開發(fā)能力的 Tenon Framework岳链,完全兼容 Vue 3.0 開發(fā)框架花竞,緊貼 W3C 標準劲件,遵從網頁開發(fā)各項規(guī)則,可以輕松移植 Web 組件约急,擁抱 Web 生態(tài)(Tenon for React 開發(fā)中)零远。

除此之外,我們還提供了完善的工具套件和一站式發(fā)布管理平臺—— Hummer Nest厌蔽。輕松實現(xiàn) Hummer 應用的持續(xù)集成和交付牵辣,并實現(xiàn)對發(fā)布版本進行線上跟蹤,統(tǒng)計版本覆蓋率和激活率等奴饮。平臺還具有線上崩潰信息的上報和報警能力纬向,能夠輕松進行應用質量管控择浊,提升應用穩(wěn)定性。


Hummer 技術架構圖

▍ 案例展示

目前 Hummer 已在聚合收銀 SDK逾条、代駕司機端 &乘客端琢岩、跑腿騎手端、貨運司機端 &貨主端师脂、兩輪車運營位担孔、國際化外賣客戶端等集團內多個業(yè)務線中進行了大規(guī)模落地并穩(wěn)定運行,以下是部分滴滴線上業(yè)務的 Hummer 頁面截圖吃警,效果和原生幾乎無異糕篇。

結束語

Hummer 是一個非常年輕的跨端開發(fā)框架,目前仍處于高速發(fā)展期酌心,非常需要大家的寶貴意見和建議拌消,歡迎大家積極使用和反饋,同時也非常歡迎大家積極參與到 Hummer 的建設中來谒府,一起把 Hummer 打造得更好更完善拼坎,期待大家的 PRs 和 issues。我們希望 Hummer 可以成為大家在開發(fā)客戶端時的首選跨端開發(fā)框架完疫,能切實幫助大家節(jié)省開發(fā)成本泰鸡,提升開發(fā)效率。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末壳鹤,一起剝皮案震驚了整個濱河市盛龄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芳誓,老刑警劉巖余舶,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锹淌,居然都是意外死亡匿值,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門赂摆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挟憔,“玉大人,你說我怎么就攤上這事烟号“硖罚” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵汪拥,是天一觀的道長达传。 經常有香客問我,道長,這世上最難降的妖魔是什么宪赶? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任宗弯,我火速辦了婚禮,結果婚禮上搂妻,老公的妹妹穿的比我還像新娘罕伯。我一直安慰自己,他們只是感情好叽讳,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布追他。 她就那樣靜靜地躺著,像睡著了一般岛蚤。 火紅的嫁衣襯著肌膚如雪邑狸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天涤妒,我揣著相機與錄音单雾,去河邊找鬼。 笑死她紫,一個胖子當著我的面吹牛硅堆,可吹牛的內容都是我干的。 我是一名探鬼主播贿讹,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼渐逃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了民褂?” 一聲冷哼從身側響起茄菊,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赊堪,沒想到半個月后面殖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡哭廉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年脊僚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遵绰。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡辽幌,死狀恐怖,靈堂內的尸體忽然破棺而出街立,到底是詐尸還是另有隱情舶衬,我是刑警寧澤埠通,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布赎离,位于F島的核電站,受9級特大地震影響端辱,放射性物質發(fā)生泄漏梁剔。R本人自食惡果不足惜虽画,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荣病。 院中可真熱鬧码撰,春花似錦、人聲如沸个盆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颊亮。三九已至柴梆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間终惑,已是汗流浹背绍在。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雹有,地道東北人偿渡。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像霸奕,于是被迫代替她去往敵國和親溜宽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容