低代码引擎是什么?
低代码引擎是一款为低代码平台开发者提供的,具备强大扩展能力的低代码研发框架。
低代码引擎由阿里巴巴前端委员会、钉钉宜搭联合出品。使用者只需要基于低代码引擎便可以快速定制符合自己业务需求的低代码平台。同时,低代码引擎还在标准低代码设计器的基础上提供了简单易用的定制扩展能力,能够满足业务独特的功能需要。
为什么我们要开发低代码引擎?2019 年 7 月,在阿里巴巴前端委员会的技术资产盘点中,我们发现,集团内部已经有几十个具备低代码能力的平台在各业务中广泛使用了,而这些平台底层是基于 3 至 4 套基础能力或 SDK 来实现的。而这些能力中很多都是可以复用的,比如下文提到的低代码引擎的几大核心能力:入料、编排、渲染、出码。这些能力的重复建设很耗费人力,而每一个 SDK 所投入的人力有限,不足以将其功能打磨精细,导致这些 SDK 大多数都处于低水平重复建设中。在思考解决方案的过程中,我们认识到,不可能将所有的低代码平台收敛至一个,因此我们决定将低代码能力下沉,将低代码技术体系拉通共建,制定了统一底层协议,基于标准打造出低代码平台的基础能力,并在此基础上提供定制化能力,最终形成了我们低代码引擎。
低代码引擎有什么优势?
低代码引擎提供了低代码平台研发所需的基础技术能力,是一款面向前端研发人员的技术产品。如果有低代码产品的研发诉求,例如:
- 无序列表业务有独特的需求,市面上的低代码平台都不满足需求,需要打造一款新的低代码平台。
- 无序列表需要将低代码平台的研发能力集成到已有系统中。
以上两种情况,如果使用低代码引擎,可以在 极短时间 内完成开发低代码设计器的开发,大大降低了低代码平台的研发难度和成本。而根据定制化程度的不同,工作量可以由传统的几十人/月压缩到几人/月。
为了支撑成百上千个低代码平台,我们将低代码技术分成了四层,通过分层架构来支撑低代码平台开发者进行业务上的定制和扩展。
底层协议标准化
我们定义了《低代码引擎搭建协议规范》和《低代码引擎物料规范》作为低代码引擎的底层协议。 这两份协议定义了 3 方面的内容,分别是 术语、结构和行为 。
- 无序列表术语是我们沟通的基础,概念相通,我们才能高效沟通。我们根据物料的颗粒度,定义了基础组件、区块、低代码组件、模板等术语,另外还包括低代码生产过程中一些模块名称,比如编辑器、画布、事件绑定、数据绑定、渲染、出码、设置器之类的术语。
- 无序列表结构,包括页面描述的结构,如何定义页面组件树、数据源、生命周期、页面状态等等。
- 无序列表行为,不同的业务场景,我们对物料的配置、约束、扩展各不相同,所以我们在物料描述中有各种各样的钩子来支持自定制。 正是基于以上几份协议,让上层的互通成为可能,让 “概念互通,物料互通,生态互通” 成为了可能。
强大的扩展能力 下图是低代码设计器的骨架结构,而设计器的扩展能力就是围绕以上的五大区域来进行的。可以通过插件、物料和设置器的扩展能力来对所需的区域进行定制。
低代码引擎孵化的低代码平台可以用以下的公式来理解:
低代码设计器 = 低代码引擎 + 设计器插件 * n + 物料 * n + 设置器 * n
下面三种典型的低代码设计器,就是在低代码引擎的基础上通过不同的插件、物料、设置器组合而成。
中后台页面设计器
小程序设计器
流程设计器
当然还有更多定制化的低代码平台设计器这里由于篇幅就不一一列举了。其中中后台页面设计器中,通过插件、设计器和物料定制的区域如下:
插件定制 设计器定制的依赖之一就是设计器插件,我们可以直接使用生态中流通的插件,也可以根据我们自己的需求进行插件的开发。通过编写不同的插件同引擎核心模块进行交互,在满足多样化的功能的同时,同时也与低代码引擎解耦。
物料定制 低代码平台中的物料也是十分重要的一个部分,我们提供了三个方面的解决方案:
- 无序列表提供了一套基础的低代码物料,对于新低代码平台来说可以开箱即用。
- 无序列表提供了将现有的源码组件转化为低代码组件的能力,之后即可在低代码引擎中使用。
- 无序列表提供了低代码组件开发能力,包括低代码组件项目初始化、低代码组件调试、低代码组件配置等能力。
设置器定制 设置器是指在低代码设计器中设计一个组件时,我们是需要对组件进行可视化配置的,而每一项配置都需要一个设置器,比如我们的配置是一个文本,我们需要的是文本设置器,我们需要配置的是数字,我们需要的就是数字设置器。
下图中的“按钮内容”和“图标尺寸”的配置就分别是文本设置器和下拉框设置器。
当标准的设置器无法满足大家的个性化需求时,标准设置器也提供了定制扩展能力。开发者可以研发自定义的设置器并在组件中使用,使得组件能支持更个性化的配置能力。
配套生态开箱即用 为了帮助大家更低成本的研发低代码平台,除了低代码引擎,我们还开源了配套生态(基础物料、基础插件、基础设置器、工具链),提供更多开箱即用的能力。更多的生态建设还在路上,敬请期待。
商业化产品验证 钉钉宜搭是阿里巴巴自研的低代码应用开发平台,基于阿里云的云基础设施和钉钉的企业数字化操作系统,为每个组织提供低门槛、高效率的数字化业务应用生产新模式。在宜搭上生产的每个应用天然具备互联互通、数据驱动、安全可控的特点。
钉钉宜搭前端底层就是依赖于低代码引擎的能力进行研发的。除此之外,低代码引擎还支撑了阿里集团内部 100多个低代码平台的建设。相信之后会有更多的商业化产品使用低代码引擎。
为什么要开源? 低代码平台的开发一直需要较长时间的基础性开发工作,费时费力,我们希望通过开源低代码引擎让更多的垂直行业低代码更容易孵化,引入标准+SDK模式建立更多的心智打造。通过社区中开发者的使用,可以加速低代码标准的形成,也可以帮助我们改进低代码引擎,丰富低代码平台的场景,扩展创新能力。
通过拥有低代码引擎,可以快速的拥有一款定制的低代码平台。在阿里内部已经孵化了100种以上各种各样的低代码平台了。而今天,低代码引擎也迎来了自己的一个关键节点,于 2022.3.23 正式对外开源。快到我们的官网进行围观吧。
- 官网地址:https://lowcode-engine.cn/
- github:https://github.com/alibaba/lowcode-engine 如果对低代码引擎建设历程和思考有兴趣,还可以查看之前的文章: 阿里低代码引擎和生态建设实战及思考
低代码引擎在集团内部已经建设多年了,研发人员也经历了很多代,我们期望能把其中的技术细节、架构设计和技术思考呈现给大家。我们提供了 《低代码引擎技术白皮书》 ,希望通过对低代码技术原理进行一个全面的介绍,让大家对低代码引擎有一个更加全面的认识。当然也希望借此能够吸引到更多志趣相投的小伙伴通过开源社区进行共建,一起加速低代码行业快速发展。除此之外,我们也希望社区的小伙伴在了解低代码引擎之后, 能结合自己的经验或者低代码业务场景发现我们的不足,提出改进建议,我们将感激不尽。
《低代码引擎技术白皮书》链接