爱奇艺是如何在活动中台实践低代码的?

架构头条 2021-04-13 12:00
作者 | 田晓旭
根据海比研究数据表明,中国低 / 无代码市场规模 2020 年为 19 亿元,预计未来五年将保持高速增长,2024 年将达到百亿量级。为什么低代码市场突然受到了如此大的关注?企业内部又是如何实践低代码的?...... 为了解答这些问题,InfoQ 记者采访了爱奇艺技术专家慕佑,他目前主要从事用户增长、用户互动相关 H5 研发工作及活动中台建设工作。
1突然火爆的低代码到底是什么?

2014 年,Forrester Research 研究机构正式提出了低代码的定义,即利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署的一种技术和工具。2017 年,Gartner 创建了一个新门类,提出了 aPaaS(应用程序平台即服务) 的概念,低代码开发平台在市场上获得了广泛关注。

以上是 Forrester Research 和 Gartner 等研究机构眼中的低代码,那么,开发者眼中的低代码是什么样子?在慕佑看来,低代码是一种新的开发模式,基于业务逻辑,通过一定的技术组件沉淀,在类似业务场景下可以通过更便捷的形式直接复用,以达到在不写代码或者少写代码的低成本基础上,实现业务开发效率最大化的目的。这种开发模式通常会依托于一个图形化的开发平台,这可以理解为低代码开发平台(LCDP)。

初级的低代码开发可以追溯到早期的图形化开发,通过在可视化区域添加一些图片,设置超链接,设置文字大小格式等方式最终生成一个网页。随着互联网的发展,业务系统的产品形态迅猛发展,简单的图片展示已经不足以支撑业务发展,页面中有了更多更复杂的交互形式,这就对开发工作提出了更大的挑战。因此,此时的低代码开发也随之变得更加复杂,会涉及到业务更深层次的逻辑,比如与服务端数据、逻辑流程相关的各种复杂考量。

据 Gartner 的研究预测,到 2024 年低代码平台将被应用于 65% 的应用程序开发。为什么低代码会突然流行呢?慕佑认为,当前互联网发展迅猛,市场上各类产品竞争激烈,在市场变化快速、业务要求紧急的情况下,业务需求与开发资源之间的矛盾不断加深,有限的开发资源以及巨大的工作量导开发者很难及时响应需求,容易错失市场良机。因此,开发者迫切希望能够找到提高开发效率的有效方法来解决这个窘境,而低代码恰好就是这样一种新的增效开发模式,自然引发了更多关注。

慕佑表示,目前市面上的低代码产品可以分为以下几类:

  • 配置类:把业务逻辑或者页面模板抽象成 JSON 语法,后期只要开发维护编辑 JSON 内容就可以生成新的内容的页面。

  • 组件拖拽类:这个大类还可以再细分成两个分支:第一个分支是基于业务抽象出基础组件,把这些组件集成到一个低代码平台,开发人员甚至是非技术同学可以直接通过拖拽组件来生成页面。这种方法灵活便捷,成本也低。第二个分支是一种更深入的做法,通过封装更原子化的逻辑功能组件,然后通过拖拽对逻辑进行重新编排以适应更多变的需求。

  • 自动生成类:类似于 imgcook 这种的工具可以直接把设计稿转成前端页面结构代码,再进行逻辑封装。

当然业界也有一些低代码平台的分类方式,比如可分为四个类型:场景应用型、产品研发型、平台生态型、技术赋能型。

总而言之,低代码开发适用于可以从过往案例中提炼抽象出更多高复用组件,场景可抽象成基本模型的业务。其基本模型中可以是封装的组件或 api,比如相对固定的产品形式:产品介绍、活动页面等。

2爱奇艺活动中台的低代码实践

根据 KPMG 的一项调查发现,在过去一年中,企业组织的分散加速了低代码的发展。自 COVID-19 爆发以来,将低代码开发平台列为最重要投资的高管人数从 10% 增长到了 26%,增加了两倍。

那么,企业内部应该如何实践低代码开发呢?慕佑表示,一个比较通用的低代码实践可以分为五个阶段:

  • 初期的业务调研:看当前遇到的问题适不适合应用低代码平台来解决;

  • 基于现有业务抽象可复用的组件单元;

  • 将沉淀积累的组件及工具集成进低代码平台;

  • 低代码平台负责更好的编辑体验,具备对各个组件组合渲染的能力;

  • 产出业务成果:生成可用页面、逻辑编排并应用到具体业务中,实现快速迭代、体验优化等,以提升整体产研效率。

慕佑所在的团队从 2019 年第三季度开始落地低代码实践,当时爱奇艺对的活动业务开发有非常多重复性工作,只要接收到了一个需求,无论规模大小,全部是定制开发,不仅效率低下,也浪费资源。长期重复性的工作会让开发人员失去耐心和激情,因此技术团队从那时起,就有意识地积累通用的组件,并通过开发页面模板让运营能够直接配置生成活动页面,经过慢慢发展,通用组件越积累越多,就变成了一个平台。

爱奇艺内部的很多技术团队都基于各自业务领域进行了低代码实践,实现方式各有不同。慕佑所在的技术团队结合活动业务搭建了活动中台,整个中台基于 React 框架开发,低代码拖拽部分使用了 React-dnd 、React-rnd 等插件进行拖拽缩放等操作。

活动中台最重要的一个功能是打通活动生命周期的完成链路:活动的搭建——智能投放——数据分析。在活动搭建环节,技术团队在活动中台集成封装了活动业务中最为高频复用的组件,包括图文混排、多种形式的抽奖、投票、评论、播放等几十个组件,运营同学自己就可以直接在中台拖拽组件生成各类活动页面。据了解,目前这个平台已经被爱奇艺的 40+ 个业务线使用,上线一年累计生成活动页面 4000+,极大的提升了运营效率。

3低代码实践的三个关键问题

虽然开发者在实践低代码过程中会因为业务系统、原有技术栈的不同,而导致实现方案不一致。但是在实践过程中,大家都会面临一些共性问题,本文我们列举了三个共性的关键问题。

第一个问题是低代码平台如何与现有的系统做整合?慕佑表示:“低代码平台的主要功能应该是基于现有开发模式抽象积累出的组件集成,所以基础能力是来源于现有开发体系的,开发者应该合理地基于现有开发体系,将产出的组件更便捷地同步到低代码平台,同时低代码平台最终产出的效果需要与公司其它系统打通,直接进行投放。通过这种方式将整个链路串联起来。”

第二个问题是如何判断哪些功能适合整合成低代码平台上的一个模块?慕佑表示:“我们通常会选择将一个具备完整逻辑的功能模块抽象成一个最小组件来整合到低代码平台上。具体来说,这个最小单元的功能基本可以实现闭环,而不需要依赖其他功能。有时,业务中也会涉及到一些组合形式的组件,这时可以以组合的形式落地到平台。”

第三个问题是低代码平台实践过程中最关键的是什么,什么样的低代码平台才是完美的平台?慕佑表示:“低代码平台实践过程中最关键的是要从业务出发。因为实现业务需求是最终目标,开发只是实现的过程,因此关键点在于深入了解业务特点并能够判断出是否适合低代码。最完美的低代码平台一定是让使用者(无论是开发人员还是运营人员)都能够以更便捷舒适的方式实现更多场景的业务需求,当然这是一个需要长期积累优化的过程。”

 今日推荐文章

为什么Java后端开发没有大规模采用Kotlin?

点个在看少个 bug 👇