方案初解:新奥创的架构设计
新奥创的架构设计的核心是以页面动态化技术作为支撑,同时这个动态化不仅仅要覆盖到 Native ,还要覆盖到 H5、小程序等场景,所以新奥创的整个架构设计就是围绕动态化体系而打造的。那么新奥创的架构设计首先需要解决的问题是:什么是动态化?什么是页面动态化?
1. 页面动态化
实际上,现在页面动态化的方案有很多,常见的 H5、Weex 等都具备很强的动态化能力和表达能力,集团内也有许多基于 Weex 搭建的体系,可以将一个个模块抽象出来,作为复用的最小单元。但是在基础链路上,详情、购物车、交易场景, H5、Weex和Native 的性能还是存在一些差异的,基础链路的稳定性和可靠性要求更高,所以我们需要Native动态化技术来支撑,选择面相对来说更确定,恰逢集团内 DinamicX 社区化活动正开展得如火如荼,其已经实现了基础链路的很多场景,所以 DinamicX 成为了我们的不二选择。
在选择了页面动态化技术之后,需要解决的另一大挑战是如何实现完整的页面动态化。DinamicX 在组件的粒度上实现了布局的动态化,但是除了页面布局和数据以外,组件的行为也是影响组件的一类重要信息,为了更好地利用组件,需要将组件的行为独立出来,让组件和行为进行组合,增强组件的业务特性及复用性。
为此,我们结合客户端容器来定义“行为/事件”,对行为进行抽象,并最终通过 DinamicX 组件+“行为/事件”的绑定来确定某个具备业务含义的组件,从而最大程度地加强组件的复用性,所以整个解决方案都是围绕“组件”+“行为/事件”来构成的。
页面动态化在不同端需要同时实现对应的“新奥创容器”,这是屏蔽端与端之间差异的前提,但同时这些容器也需要我们的维护,常见的容器有iOS 、Android 、H5 、小程序等。
2. 新奥创架构设计的协议
新奥创架构设计是组件化协议的延续,组件化协议将页面划分为结构和数据,其已经形成了多端交互的标准协议。新奥创引入了动态性和行为的表达能力,所以必须要对组件化协议进行升级,要增加布局动态性对应的“模板”和行为动态性对应的“事件”的表达。至此,新奥创架构设计协议可以完整地由数据驱动生成一个可以自定义交互行为的页面,真正做到页面动态化,而新奥创架构设计协议也成为了新奥创架构设计的页面动态化体系的基石。