写点什么

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

2021 年 4 月 13 日

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

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

突然火爆的低代码到底是什么?


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


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


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


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


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


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

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

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


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


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

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


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


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


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

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

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

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

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


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


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


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

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


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


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


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


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

2021 年 4 月 13 日 15:382881
用户头像
田晓旭 InfoQ 编辑

发布了 477 篇内容, 共 218.8 次阅读, 收获喜欢 1500 次。

关注

评论

发布
暂无评论
发现更多内容

基于 Flink 的典型 ETL 场景实现方案

Apache Flink

flink

oeasy 教您玩转 linux 010214 画面转文字 asciiview

o

数字货币合约跟单系统开发app,跟单系统搭建源码

WX13823153201

非科班进大厂必备算法

我是程序员小贱

面试 算法

测试

Http请求中如何保持状态?

架构师修行之路

Flink SQL CDC 上线!我们总结了 13 条生产实践经验

Apache Flink

flink

STL总结与常见面试题

C语言与CPP编程

c c++ 编程 编程语言 stl

大作业

Geek_2e7dd7

甲方日常 14

句子

Java 工作 随笔杂谈 日常

架构师课程大作业 知识图谱

杉松壁

为什么区块链能成为全球贸易的助推器

CECBC区块链专委会

区块链 金融 国际贸易

C/C++基础之sizeof使用

C语言与CPP编程

c c++ 编程 编程语言

Js 封装:阻止频繁重复操作

lockdown56

欧洲央行近期将决定是否建立官方数字货币

CECBC区块链专委会

数字货币 欧央行

RabbitMQ 重要概念介绍

hepingfly

Java RabbitMQ 消息队列 JMS

有关 HashMap 面试会问的一切

小齐本齐

Java 数据结构 算法

前端必会的七种排序算法

执鸢者

算法 前端

Java String 面面观

keaper

Java string pool string

python——深入类和对象

菜鸟小sailor 🐕

一次代码评审,差点过不了试用期!

小傅哥

Java 小傅哥 代码质量 代码优化 代码规范

Spring事务是如何应用到你的业务场景中的?

AI乔治

Java spring 架构 微服务 springboot

测试

云龙

解决分布式session问题

架构师修行之路

分布式 架构设计 session

SpringBoot RabbitMQ消息队列的重试、超时、延时、死信队列

Barry的异想世界

RabbitMQ springboot 消息队列 死信队列 延时队列

Spring 5 中文解析测试篇-WebTestClient

青年IT男

单元测试 Spring5

高并发系列——CAS操作及CPU底层操作解析

诸葛小猿

CAS AtomicInteger compareAndSwap cmpxchg lock

Spring IoC 到底是什么?

小齐本齐

spring 程序员 ioc Spring Framework Spring Bean

如何搭建第一个 Spring 项目?

小齐本齐

spring Spring Framework Spring Bean

理财专题一

TCA

音乐创作者必备软件,轻松玩转原创

奈奈的杂社

音乐制作 编曲 电音 作曲 乐团

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