当前位置: 首页 > 科技观察

阿里低代码引擎LowCodeEngine正式开源!

时间:2023-03-20 19:24:17 科技观察

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