钉钉企业级前端应用的最佳实践

所属专题:前端进阶

所属领域:

嘉宾 : 黄建磊(宁家) | 钉钉桌面前端负责人

会议室 : 大宴会厅3

讲师介绍

专题演讲嘉宾:黄建磊(宁家)

钉钉 桌面前端负责人

2015年加入阿里巴巴 ICBU,主要负责创新系统的开发维护,印象比较深刻的是 Ubanner 智能素材生成系统、前后端分离、AI技术、Node.js 前后端分离的一次完整实践。该系统支撑了阿里内部的 Banner 自动化生成工作,承载了包括各种大小促的素材生成,效果非常好。

2017年加入钉钉,从事桌面前端开发,经历了 Hybird 改造等桌面端里程碑事件。从最初的 SPA 到 NW.js/Electron 到 PWA desktop 再到小程序,桌面端的架构一直在不断衍变。然而,万变不离其宗,复杂异步数据流之间的竞争和协作治理、开发效率的追求、金融级稳定性要求、极简用户体验和复杂业务逻辑之间的 trade-off,都是我们在各个阶段不断追求的目标。桌面开发,乐此不疲。

议题介绍

地点:大宴会厅3
所属专题:前端进阶
所属领域:

演讲:钉钉企业级前端应用的最佳实践

钉钉(DingTalk)是中国领先的智能移动办公平台,由阿里巴巴集团开发,免费提供给所有中国企业,用于商务沟通和工作协同,目前注册用户超过1亿,注册组织超过750w家。如此规模体量,对我们的技术架构、开发效率、稳定性提出了巨大的考验。

曾有人说过,前端的框架稳定性是3个月,架构稳定性是6个月,语言稳定性是1年。听起来可能有点激进,但是,从某种程度上也反应了前端领域所面对的问题域和环境在不断的变化。桌面前端也未曾避免。

钉钉桌面端也同步经历了 Angular1.x 的 SPA 1.0 时代到 NW.JS 的2.0时代。今天钉钉进入 3.0 时代——Hybird App 模式,基于 Chromium Embedded Framework (CEF) 的混合 App。网络,数据交给 Native C++ 处理,交互 UI 密集型,追求高开发效率的场景用前端来承接。

复杂异步数据流之间的竞争和协作一直是企业级应用要面对的第一大问题。区别于普适前端应用的面向接口编程,企业级应用的最大特点是领域模型驱动开发,交织错乱的现实业务逻辑通过领域模型进行数字化建模,领域模型之间的竞争和协作又可以映射到异步数据流之间的竞争和协作。而钉钉,在面对这个难题时,依托 Rxjs 强大的响应式编程模型,构建通用、场景等不同粒度的业务流模型,再通过 redux-observable对React tree 之外的副作用进行管理,解决这个问题的同时,也沉淀了业务场景,大大提升了架构的扩展性。

企业级应用的稳定性要求堪比金融级。钉钉是业务工作的基础设施,如果钉钉不稳定,对企业的工作伤害会非常大。同时,在钉钉开发团队,我们提倡的是 TDD,我们的测试同学只有3个,而迭代速度保持每三周一个版本。那我们该如何保障稳定性呢?从自测驱动开发,到严格的 CR 机制,再到分阶段监控模型,通过完善我们的质量保障体系,确保钉钉稳定性。

最近两年,前端领域最火的词应该是‘小程序’吧?这个中国人原创的技术体系,极大的提升了开发者的体验和效率,扩展了生态,帮助用户获得更好、更安全的产品。钉钉也不例外,确切的说钉钉桌面端也不例外。钉钉是国内少有的拥有小程序桌面端的应用,越来越多的业务使用小程序,这也为我们带来了新的课题,现有的 Hybird 应用如何可以快速的赋能小程序动态化?在此基础上,我们提出了逻辑编排的概念,将其与 UI 进行独立。

演讲提纲:

  1. 钉钉桌面整体架构
  2. 钉钉桌面前端
  3. 整体架构
  4. 复杂异步数据之间的竞争和协作---基于Rxjs的数据流模型
  5. 稳定性治理---基于分阶段监控的330模型
  6. 赋能小程序---逻辑编排层的思考和实践
  7. 挑战和规划

听众受益:

  1. 了解桌面前端的技术衍变;
  2. 了解企业应用的复杂性;
  3. 了解前端在处理复杂应用的方法论和具体实践。

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
想要批量报名或更多优惠?
立即联系票务报名小助手豆包
或致电:010-84780850