
作者:别志华、祁强
GaiaX 跨端模板引擎,是在阿里优酷、淘票票、大麦内广泛使用的 Native 动态化方案,其核心优势是性能、稳定和易用。本系列文章《GaiaX 开源解读》,将带大家看看过去三年GaiaX的发展过程。
GaiaX 开源地址:https://github.com/alibaba/GaiaX
GaiaX的起源

GaiaX是为了解决多端卡片化UI组件的研发效能瓶颈问题孵化而来的,在过去三年中经过多次迭代,逐步完成了从设计研发一体化到模板研发体系的演进工作。
就像大部分优秀的开源框架一样,GaiaX是从优酷自身的业务特色和业务问题出发,提出的一套解决方案,再经过不断提炼和拓展,从而形成了现在的模板研发体系,其目的是帮助设计、开发、测试来提高效率,解决当前优酷App迭代过程中碰到的研发效能瓶颈问题。
下面会从优酷的业务特色、客户端研发效能的瓶颈问题、提出解决研发效能问题的思路这三个方面分别来进行介绍,带大家进一步了解GaiaX的起源。
业务特色

优酷是阿里巴巴文化娱乐集团的核心用户引擎,是中国领先的在线视频平台,现支持PC、电视、移动三大终端,兼具版权、自制、合制、自频道、直播等多种内容形态。
在优酷持续改善运营效率和成本的背景下,优酷App已经通过技术手段支持了电视、移动、车载等多种设备场景,并不断为数千万用户提供更优质的使用体验。通对优酷App业务场景的分析,我们可以提炼出三个主要的业务特色:
内容分发场景为主。优酷App的业务形态主要包含分发场景和消费场景:分发场景的目标是以简单、高效的形式的引导用户前往消费场景;消费场景的目标则是进行视频内容的消费或者会员权益的消费。
卡片化的UI组件。优酷App的UI组件彼此之间具备高度的相似相性、可以被结构化,并且可以组合使用。例如:左图右文的组件、上图下文的组件、单行多列、多行多列、Banner图、多类型组合等。
多屏多设备。优酷App目前支持Phone(Android、iOS)、Pad(Android、iOS)、Mac(iOS)、车机(Android)、电视(Android)等设备,为了降低研发成本和提高迭代效率,研发团队逐渐在这些设备上使用同一份代码,一个UI组件会在多个设备和不同尺寸的屏幕上进行展示,这就对UI组件的实现提出了更多的适配要求。
研发效能的瓶颈问题
我们都知道,想要解决一个问题的前提是将一个问题定义清楚,那么该如何定义优酷App迭代过程中碰到的研发效能问题呢?

软件行业发展至今,各家公司内的软件开发迭代流程虽略有不同但也大致一样,可以将迭代流程分为业务环节、产品环节、设计环节、研发环节、测试环节、发布环节,各个环节彼此配合、相互协作才能顺利将产品发布。
在迭代流程中的各个环节也分别对应着各自的时间周期,不同的时间周期内所做的事和碰到的问题也不一样。一个迭代通常包含的时间周期有:业务周期、产品周期、设计周期、研发周期、测试周期、发布周期。下面分别简要介绍一下每个周期内各自的痛点和瓶颈问题:
- 业务周期:需求变更、紧急需求、下游依赖方排期困难,期望下游依赖方能快速消化需求和上线迭代。