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

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

跨桌面端之组件化实践

image.pngimage.png作者:张雁翔(莫二) 出品:大淘宝技术

 

 

本文主要介绍了千牛PC跨端框架中,我们关于组件化部分的思考、方案选择、遇到的一些问题和解法。此文为本系列文章第三篇,

第一篇:跨全端SDK技术演进

第二篇:跨桌面端之Web容器演进本文:跨桌面端之组件化实践

 

背景介绍

 

windows千牛功能很丰富,mac千牛什么时候可以把能力对齐?

相信所有跨平台应用,都有遇到过这样的窘境。由于平台差异的复杂性,维护多端产品成本非常高,且常常存在多端体验不一致的问题。情况就是这样,而我们团队维护了pc千牛和pc旺旺2款跨端产品,在效能和体验的双重压力之下,搭建一个多端统一的pc应用跨平台开发框架势在必行。

 

本文主要介绍了千牛PC跨端框架中,我们关于组件化部分的思考、方案选择、遇到的一些问题和解法。

 

所谓框架,它既是一个“框子”,有一定的约束性,也是一个“架子”,有一定的支撑性。                    IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。

 

为什么要做组件化?

 

跨端框架为什么选择做组件化?

框架本身一般不能直接解决某个具体问题,但为解决问题的相关组件提供了一些衔接、组合的基础能力。框架的科学性、易用性,直接决定了研发效率和产品质量。

组件化是用来解决框架功能扩展、复用的一种非常合适的技术方案。

 

 

而用组件化模式设计的一个应用框架,一般具备以下特性:

  1. 极好的扩展性
  2. 极好的复用性
  3. 灵活度高,可以很方便组装或下线功能
  4. 修改功能,影响范围很小
  5. 非常适合团队分工协作

 

这些优点,每一项都是我们梦寐以求的,所以说组件化对我们几乎是必然选择。

 

组件化是什么?

组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程,有多种属性、状态反映其内部特性。

 

举个例子,你要造一个汽车,但是发现汽车实在太复杂了,很难实现,于是:

  1. 你把汽车拆分成了底盘,发动机,变速箱,轮子等模块,定义好了他们各自的职责。
  2. 然后你找来小伙伴帮忙,先约定好了组件标准,再让每个人实现其中一个独立模块。
  3. 你还需要一个控制系统,能够让这些模块互相配合,协同工作。
  4. 由于大家都按照一个标准来开发,这些模块很容易被组装到一起,进行管理和控制。
  5. 这样,你们实现了一个汽车。

 

这里的一个功能模块,就是一个组件,用来控制组件协作运行的系统,就是组件框架。

 

组件框架需要解决的几个问题:

  1. 如何发现组件
  2. 如何管理组件的生命周期
  3. 如何组件间调用
  4. 提供的公共基础能力

image.png

 

 

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

相关文章
|
运维 Kubernetes 监控
K8S异常诊断之俺的内存呢
本文讲述作者如何解决客户集群中出现的OOM(Out of Memory)和Pod驱逐问题。文章不仅详细记录了问题的发生背景、现象特征,还深入探讨了排查过程中的关键步骤和技术细节。
985 108
K8S异常诊断之俺的内存呢
|
10月前
|
传感器 人工智能 自然语言处理
通过AI编程工具,实现沉浸式翻译 Light Translate
通过AI编程工具,实现Light Translate 是一款智能沉浸式翻译插件,鼠标悬停0.1秒即可精准翻译单词,无需点击或选择,助力流畅阅读英文网页,专为英语工作者设计,提升阅读效率与语言能力。
539 2
|
机器学习/深度学习 API
DeepSeek模型压缩与加速
随着深度学习模型规模增大,推理速度和资源消耗成为关键问题。DeepSeek提供多种模型压缩与加速工具,包括剪枝、量化、知识蒸馏和结构优化,帮助在保持性能的同时大幅降低计算资源需求。本文详细介绍这些技术及其代码实现,涵盖模型剪枝、量化、知识蒸馏及结构优化的方法,并提供常见问题的解决方案,助你掌握高效推理技巧。
课时143:综合实战:宠物商店
宠物商店系统通过定义宠物接口(`Pet`),实现了宠物的上架、下架和查询功能。具体流程如下: 1. **定义宠物标准**:通过接口 `Pet` 定义宠物的基本属性,如名字和颜色。 2. **宠物商店类**:`Petshop` 类使用链表保存多个宠物信息,提供添加、删除和关键字查询功能。 3. **实现具体宠物类**:如 `Cat` 和 `Dog` 类实现 `Pet` 接口,定义具体的宠物属性和行为。 4. **操作演示**:通过 `JavaDemo` 类演示如何开店、添加宠物并进行查询。 总结:该系统以接口为标准,确保所有符合标准的对象可以灵活管理,体现了面向接口编程的优势。
353 0
|
传感器 物联网 开发工具
低功耗蓝牙和 Wi-Fi 哪个成本更低
低功耗蓝牙和Wi-Fi在成本上各有优势。低功耗蓝牙芯片成本较低,功耗更小,适合简单数据传输;而Wi-Fi传输速率高,但芯片成本和功耗相对较高,适用于复杂网络环境。具体选择需根据应用场景决定。
1033 5
|
传感器 数据采集 监控
数据采集器和物联网网关的区别
数据采集器主要用于从各种数据源收集数据。这些数据源可以是传感器(如温度传感器、压力传感器等)、仪表(如电表、水表等)或者其他具有数据输出功能的设备。物联网网关是连接感知层(包含各种传感器和数据采集设备)和网络层(如互联网、局域网等)的关键设备。
779 4
|
安全 Go 开发者
代码之美:Go语言并发编程的优雅实现与案例分析
【10月更文挑战第28天】Go语言自2009年发布以来,凭借简洁的语法、高效的性能和原生的并发支持,赢得了众多开发者的青睐。本文通过两个案例,分别展示了如何使用goroutine和channel实现并发下载网页和构建并发Web服务器,深入探讨了Go语言并发编程的优雅实现。
379 2
|
机器学习/深度学习 数据可视化
混淆矩阵与 ROC 曲线:何时使用哪个进行模型评估
混淆矩阵与 ROC 曲线:何时使用哪个进行模型评估
527 11
|
存储 算法 UED
深度解析RAG优化之道:从检索到生成全面升级大模型应用性能,探索提升企业服务质量与用户体验的终极秘密
【10月更文挑战第3天】随着大模型技术的进步,人们愈发关注如何针对特定任务优化模型表现,尤其是在需要深厚背景知识的领域。RAG(Retrieval-Augmented Generation)技术因其能检索相关文档以辅助生成内容而备受青睐。本文将通过问答形式深入探讨RAG优化的关键点,并提供具体实现思路及示例代码。
680 2
|
关系型数据库 MySQL 数据库
开发者如何使用云数据库RDS
【10月更文挑战第4天】开发者如何使用云数据库RDS
1049 1