带你读《2022技术人的百宝黑皮书》——跨桌面端之组件化实践(9)

简介: 带你读《2022技术人的百宝黑皮书》——跨桌面端之组件化实践(9)

带你读《2022技术人的百宝黑皮书》——跨桌面端之组件化实践(8)https://developer.aliyun.com/article/1340319?groupCode=taobaotech


组件代码自动生成

跨平台、标准化、低耦合,往往意味着编码更加繁琐,也意味着难以落地。

 

举个例子,假如我在组件A要去操作组件B,显示一个对话框,我需要写的代码有:

  1. IxxBService 组件接口
  2. CxxBService 组件实现
  3. IxxBPresenter P层接口
  4. CxxBPresenter p层实现
  5. IxxBPresenter::IxxBViewDelegate p层定义的ViewDelegate接口
  6. CxxBView view层实现

 

要在6个对象里写代码,这简直就是一个灾难!!!但是考虑到长期的可维护性、跨平台,又必须这么做。于是,我们开发了一个代码生成工具,根据上面各种情况下的ui关系,可以从模板自动生成组件代码。

由于篇幅限制,这里不具体展开。

 

 

产生的效果

 

这套跨端组件化方案,已在跨端千牛/跨端旺旺产品中落地,目前双产品三端已经发布上线。

(目前win千牛功能 > 跨端千牛,跨端千牛的win版本尚未发布,敬请期待)

  1. 双端完全一致的使用体验,完全复用相同业务逻辑代码。
  2. 双端开发成本天然降低一半。
  3. 适合团队协作,组件分拆,协同开发的效率高。
  4. 组件间完全解耦,可维护性大大增强。一次开发,到处使用,简单方便。
  5. 可用工具自动生成组件代码,只需关注业务逻辑,效率高,风格一致。
  6. 集成了大量集团基础能力,沉淀了pc跨端应用组件化框架,提供快速搭建阿里系pc应用能力。

 

再回到我们选择这个方案时的目标,

  1. 首先是支持跨平台,
  2. 其次是可维护性、扩展性,长期来看,可维护性对产品质量、效能和研发体验都影响深远。
  3. 然后是良好的性能和稳定性,
  4. 最后是较好的研发效能和研发体验。

 

目前来看,prg组件框架在前3点上表现出色,在第4点研发体验上,由于跨多端的严苛要求,ui组件分层较多,开发略显繁琐,我们通过自研组件代码生成工具,缓解了这一问题。

 

总的来说,prg组件跨端框架可以在未来的3-5年里,很好的支撑起千牛/旺旺,甚至其他阿里系pc应用的业务。

 

跨端组件框架的演进思考

技术基础能力完善

 

框架基础能力,例如支持事件订阅优先级、支持组件链路/性能监控、增加基础能力组件等。                   ui组件单元测试能力,ui组件都是pv结构的,ui逻辑都在p层,用简单的uidelegate即可串联ui逻辑,实现ui单元测  试。

研发效能和研发体验,完善代码模板和自动化工具 ,实现接口级别代码自动生成/补全,进一步提升研发效率和研发体验。

 

 

带你读《2022技术人的百宝黑皮书》——跨桌面端之组件化实践(10)https://developer.aliyun.com/article/1340317?groupCode=taobaotech

相关文章
|
开发工具 Android开发
Android AppsFlyer接入及测试
SDK接入 AppsFlyer:Android-SDK集成 SDK与Android平台的兼容性 1、Android 4.0以上 2、非移动Android平台,例如智能电视,包括亚马逊的Fire TV 3、Android应用程式的店外市场,例如Amazon和Baidu
3431 0
Android AppsFlyer接入及测试
|
6月前
单细胞RNA速率分析: scVelo
单细胞RNA速率分析: scVelo
单细胞RNA速率分析: scVelo
|
Web App开发 移动开发 定位技术
15款得心应手的思维导图软件
15款得心应手的思维导图软件
708 6
|
9月前
|
供应链 Serverless BI
基于阿里云区块链服务(BaaS)的供应链金融系统开发与部署
随着区块链技术的快速发展,其在供应链金融领域的应用成为热点。阿里云区块链服务(BaaS)提供安全、高效、易用的平台,支持Hyperledger Fabric和蚂蚁区块链,帮助企业快速构建供应链金融系统。本文通过实战案例展示基于阿里云BaaS开发供应链金融系统的全流程,涵盖企业认证、应收账款融资、交易记录及数据分析等功能,显著提升透明度和可信度,降低融资成本。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
《集成学习:堆叠泛化与提升法在人工智能中的应用热点》
在人工智能领域,集成学习是提升模型性能的关键技术。堆叠泛化通过训练元模型整合多个基础模型的输出,结合各自优势,显著提高准确性和泛化能力;提升法则通过迭代训练逐步优化模型,修正误差,增强适应性。两者共同为图像识别、自然语言处理和智能决策等复杂问题提供强大支持,推动AI技术进步。
212 8
《集成学习:堆叠泛化与提升法在人工智能中的应用热点》
|
11月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
324 3
|
存储 人工智能 安全
操作系统的心脏——内核深度解析
【10月更文挑战第29天】 本文深入探讨了操作系统的核心组件——内核,包括其定义、功能、架构以及在现代计算中的重要性。通过对比不同操作系统内核的设计哲学和技术实现,揭示了内核如何影响系统性能、稳定性和安全性。此外,文章还讨论了未来内核技术的潜在发展方向,为读者提供了一个全面了解内核工作原理的平台。
|
存储 移动开发 JavaScript
前端面经高频考点
前端面经高频考点
258 5
|
存储 监控 机器人
LangChain 框架
8月更文挑战第15天
|
存储 网络安全 数据安全/隐私保护
通过内网穿透实现文件共享,Python—行代码轻松实现公网访问
通过内网穿透实现文件共享,Python—行代码轻松实现公网访问