50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

滴滴开源轻量级跨端开发框架:Hummer

  • 2021-06-26
  • 本文字数:1863 字

    阅读完需:约 6 分钟

滴滴开源轻量级跨端开发框架:Hummer

历时两年的深度打磨,滴滴普惠泛前端团队和滴滴 R-Lab 泛前端团队联合打造的超轻量级动态化跨端开发框架 —— Hummer,终于开源啦。


它由极具精简的 Hummer Core 和高可扩展的 Tenon Reactive Framework 组成。目前该方案已在滴滴聚合收银台、代驾司机端、代驾乘客端、跑腿骑手端、跑腿商户端、货运司机端、货主端、两轮车、外卖等集团内多个业务线中进行了大规模落地并稳定运行。



业务背景


过去两年随着业务多品类、多场景的快速拓展,对研发团队的吞吐能力提出了更高的要求。如何在保持团队整体规模不变的前提下更高效地支撑业务的快速发展,成为了团队的首要考量,而跨端开发则成为了我们的首要选择。在调研了业界众多跨端方案之后,发现在包体积控制、整体稳定性,以及上手成本等方面,都无法很好地满足我们的需求。在此背景下,普惠泛前端团队和 R-Lab 泛前端团队进行了深入地合作,于 2018 年年底发起了 Hummer 跨端技术项目,旨在以较低成本的投入,产出一款具有高生产效率的动态化跨端开发框架,有效整合团队内部前端和终端开发资源,真正提升团队整体的开发效率。


技术优势


正如 Hummer(蜂鸟)的名字一样,具有小巧轻盈的体态,迅猛强健的翅膀,以及色彩艳丽的外表。


  • 超轻量:小于 1M 的编译产物,能以极低的包体积成本接入到 App 中,打造极致轻量优势;

  • 易上手:Hummer API + Tenon Reactive Framework,兼顾客户端和前端的开发体验,造就极低的学习门槛;

  • 高可用:已在滴滴内部多个业务中得到完整验证,整体 Crash 率低于 0.01%;

  • 高性能:基于原生组件和模块,可以最大化利用原生渲染的性能优势以及平台能力;

  • 跨平台:一套代码可以编译并运行于 iOS 和 Android 平台,使用 Tenon 可以快速兼容基于 Vue 开发的 Web 应用;

  • 动态化:利用 JavaScript(以下简称 JS)解释执行的特性,可以快速部署动态页面,配合 Hummer Nest 平台可以实现云端发布;


▍ 简单演示


为了让大家对 Hummer 有一个直观的了解,先来感受一下分别使用 Hummer API 和 Tenon 开发的 HelloWorld 页面对应的代码。



demo 代码及效果展示图


如上图所示,Hummer 同时支持偏向原生开发体验的 Hummer API 开发模式和偏向前端开发体验的 Tenon(兼容 Vue)开发模式,在不久的将来,我们还将支持更多开发框架,如 React、Angular 等。


技术架构和跨端体系


Hummer 以 JS 引擎为基石,在保持对 JS 引擎最少特性依赖的前提下,实现了类似 React Native 的 Fabric 引擎直通架构,使原生对象和 JS 对象能够相互调动,实现了同步视图渲染,使其充分利用原生渲染的性能优势(目前已支持 JavaScriptCore、V8、Hermers、QuickJS 等业内知名 JS 引擎)。同时,通过组件自渲染能力,几乎完美控制视图渲染的每一个细节,再配合经过调优的 Yoga 布局引擎,抹平了两端视图布局差异,使两端视图保持了高度一致(性能更佳的自研布局引擎开发中)。


如下图所示,我们抛弃了业界其他跨端框架普遍采用的 DSL+VDOM 的技术实现,以换取接近原生的开发体验和性能。但同时,我们也提供了具有响应式开发能力的 Tenon Framework,完全兼容 Vue 3.0 开发框架,紧贴 W3C 标准,遵从网页开发各项规则,可以轻松移植 Web 组件,拥抱 Web 生态(Tenon for React 开发中)。 


除此之外,我们还提供了完善的工具套件和一站式发布管理平台—— Hummer Nest。轻松实现 Hummer 应用的持续集成和交付,并实现对发布版本进行线上跟踪,统计版本覆盖率和激活率等。平台还具有线上崩溃信息的上报和报警能力,能够轻松进行应用质量管控,提升应用稳定性。


Hummer 技术架构图


▍ 案例展示


目前 Hummer 已在聚合收银 SDK、代驾司机端 &乘客端、跑腿骑手端、货运司机端 &货主端、两轮车运营位、国际化外卖客户端等集团内多个业务线中进行了大规模落地并稳定运行,以下是部分滴滴线上业务的 Hummer 页面截图,效果和原生几乎无异。




界面效果图(图中数据已作特殊处理,仅供介绍使用)


结束语


Hummer 是一个非常年轻的跨端开发框架,目前仍处于高速发展期,非常需要大家的宝贵意见和建议,欢迎大家积极使用和反馈,同时也非常欢迎大家积极参与到 Hummer 的建设中来,一起把 Hummer 打造得更好更完善,期待大家的 PRs 和 issues。我们希望 Hummer 可以成为大家在开发客户端时的首选跨端开发框架,能切实帮助大家节省开发成本,提升开发效率。



头图:Unsplash

作者:Danny Yuandong

原文:https://mp.weixin.qq.com/s/GjajcAFKnSvEatnhsGhpdA

原文:滴滴开源轻量级跨端开发框架:Hummer

来源:滴滴技术 - 微信公众号 [ID:didi_tech]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


2021-06-26 08:006946

评论

发布
暂无评论
发现更多内容

软件测试 | 关系型与非关系型数据库的区别

测吧(北京)科技有限公司

测试

CDN——提升您网站的性能

极客天地

软件测试 | 多表查询:外连接查询详解

测吧(北京)科技有限公司

测试

Python实现词频统计:利用列表、字符串操作和字典

测吧(北京)科技有限公司

测试

Linux上执行内存中的脚本和程序

不在线第一只蜗牛

Linux 运维 服务器

用 Python 实现猜拳游戏:结合分支语句、运算符和列表

测吧(北京)科技有限公司

测试

MySQL的安装与配置:从零开始搭建数据库环境

测吧(北京)科技有限公司

测试

数据库客户端工具的使用

测吧(北京)科技有限公司

测试

软件测试 | Pytest 参数化与基本装饰器用法

测吧(北京)科技有限公司

测试

软件测试学习笔记丨Spring Boot 统一返回结果模版

测试人

软件测试

深挖中建信息2023年年报,用数智化“创造价值”

脑极体

数智化

Python实现水仙花数的查找与验证

测吧(北京)科技有限公司

测试

交互式数字展厅能否成为智慧城市规划的下一个风口?

点量实时云渲染

智慧城市 数字孪生 实时云渲染 3D实时云渲染 线上展厅

数据驱动制造:EMQX ECP 指标监测功能增强生产透明度

EMQ映云科技

mqtt emqx EMQX ECP

GPT-4o 引领人机交互新风向,向量数据库赛道沸腾了

Zilliz

Zilliz GPT 向量数据库 GPT-4 gpt4o

BOE(京东方)携全场景AI智慧显示等前沿技术亮相2024国际显示周 “科技+绿色”引领行业发展风向标

爱极客侠

程序中的循环

测吧(北京)科技有限公司

测试

软件测试 | Redis:性能最快的内存数据库及其基础使用

测吧(北京)科技有限公司

测试

【内容推荐】一课毕业,IoTDB 从入门到精通!

Apache IoTDB

Python中的封装与访问控制权限

测吧(北京)科技有限公司

测试

BOE(京东方)董事长陈炎顺获2024年“David Sarnoff产业成就奖” “屏之物联”引领产业高质发展新变革

爱极客侠

精通Python推导式:元组、列表、字典、集合

测吧(北京)科技有限公司

测试

Python类的构造方法与字符串表示

测吧(北京)科技有限公司

测试

Galxe已投资Pencils Protocol,投资者阵营正不断扩大

BlockChain先知

什么是大模型微调 (Fine-tuning)?

澳鹏Appen

人工智能 大模型 大模型微调 模型微调 大模型微调实践

字节跳动大模型家族全员亮相,火山引擎全栈AI服务助力企业智能化转型

ToB行业头条

火山引擎 #大模型

软件质量的守门人——接口测试

霍格沃兹测试开发学社

软件测试 | Pytest 测试用例调度与运行

测吧(北京)科技有限公司

测试

滴滴开源轻量级跨端开发框架:Hummer_开源_滴滴技术_InfoQ精选文章