跨桌面端之组件化实践
作者:张雁翔(莫二) 出品:大淘宝技术
本文主要介绍了千牛PC跨端框架中,我们关于组件化部分的思考、方案选择、遇到的一些问题和解法。此文为本系列文章第三篇,
第一篇:跨全端SDK技术演进
第二篇:跨桌面端之Web容器演进本文:跨桌面端之组件化实践
背景介绍
windows千牛功能很丰富,mac千牛什么时候可以把能力对齐?
相信所有跨平台应用,都有遇到过这样的窘境。由于平台差异的复杂性,维护多端产品成本非常高,且常常存在多端体验不一致的问题。情况就是这样,而我们团队维护了pc千牛和pc旺旺2款跨端产品,在效能和体验的双重压力之下,搭建一个多端统一的pc应用跨平台开发框架势在必行。
本文主要介绍了千牛PC跨端框架中,我们关于组件化部分的思考、方案选择、遇到的一些问题和解法。
所谓框架,它既是一个“框子”,有一定的约束性,也是一个“架子”,有一定的支撑性。 IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体 问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。
为什么要做组件化?
跨端框架为什么选择做组件化?
框架本身一般不能直接解决某个具体问题,但为解决问题的相关组件提供了一些衔接、组合的基础能力。框架的科学性、易用性,直接决定了研发效率和产品质量。
组件化是用来解决框架功能扩展、复用的一种非常合适的技术方案。
而用组件化模式设计的一个应用框架,一般具备以下特性:
- 极好的扩展性
- 极好的复用性
- 灵活度高,可以很方便组装或下线功能
- 修改功能,影响范围很小
- 非常适合团队分工协作
这些优点,每一项都是我们梦寐以求的,所以说组件化对我们几乎是必然选择。
组件化是什么?
组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程,有多种属性、状态反映其内部特性。
举个例子,你要造一个汽车,但是发现汽车实在太复杂了,很难实现,于是:
- 你把汽车拆分成了底盘,发动机,变速箱,轮子等模块,定义好了他们各自的职责。
- 然后你找来小伙伴帮忙,先约定好了组件标准,再让每个人实现其中一个独立模块。
- 你还需要一个控制系统,能够让这些模块互相配合,协同工作。
- 由于大家都按照一个标准来开发,这些模块很容易被组装到一起,进行管理和控制。
- 这样,你们实现了一个汽车。
这里的一个功能模块,就是一个组件,用来控制组件协作运行的系统,就是组件框架。
组件框架需要解决的几个问题:
- 如何发现组件
- 如何管理组件的生命周期
- 如何组件间调用
- 提供的公共基础能力
带你读《2022技术人的百宝黑皮书》——跨桌面端之组件化实践(2)https://developer.aliyun.com/article/1340325?groupCode=taobaotech