当前位置: 华文头条 > 推荐

开源啦!阿里低代码引擎13.7k star,提高工作效率和智能化水平

2024-03-18推荐

低代码引擎是一种软件开发平台,允许开发者通过图形用户界面和配置而非传统的计算机编程来创建应用程序。它简化了应用程序开发过程,使非技术背景的人员也能参与其中,提高了开发效率并降低了成本。

一 什么是低代码?

零代码、低代码的概念在整个全球行业内已经流行了很长一段时间。通常意义上的低代码定义会有三个关键点:

  1. 一个用于生产软件的可视化编辑器
  2. 中间包含了一些用于组装的物料,可以通过编排、组合和配置它们以生成丰富的功能或表现
  3. 最后的实施结果是成本降低

通常情况下低代码平台会具备以下的几个能力:

  • 可视化页面搭建 ,通过简单的拖拽完成应用页面开发,对前端技能没有要求或不需要特别专业的了解;
  • 可视化模型设计 ,与业务相关的数据存储变得更容易理解,甚至大多数简单场景可以做到表单即模型,模型字段的类型更加业务化;
  • 可视化流程设计 ,不管是业务流程还是审批流程,都可以通过简单的点线连接来进行配置;
  • 可视化报表及数据分析 ,BI 数据分析能力成为标配,随时随地通过拖拽选择来定义自定义分析报表;
  • 可视化服务与数据开放、集成 ,具备与其他系统互联互通的配置;
  • 权限、角色设置标准化和业务化 ,通过策略规则配置来将数据、操作的权限进行精细化管理;
  • 无需关心服务器、数据库等底层运维、计算设施设备、网络等等复杂技术概念 ,具备安全、性能的统一解决方案,开发者只需要专注于业务本身;
  • 软件开发演进阶段可总结为如下图所示:

    相较于传统的纯代码模式,低代码有如下优势:

    二 低代码产品发展及现状

    低代码概念于2014年由Forrester首次正式提出,低代码产品由此开始了蓬勃发展。阿里在2016年宜达项目立项,随后发布云钉一体战略,之后宜达低代码平台对外发布。

    低代码产品国内外厂商大体如下:

    在国内,行业竞争趋势逐渐明朗,以BAT为代表的大厂都推出了各自的低代码产品:

    三 什么是低代码引擎?

    低代码引擎是一款为低代码平台开发者提供的,具备强大定制扩展能力的低代码设计器研发框架。

    下面简单描述定义中的子部分:

    低代码设计器 现如今低代码平台越来越多,而每一个低代码平台中都会有的一个能力就是搭建和配置页面、模块的页面,这个页面我们称为设计器。例如,下图是中后台低代码平台的设计器。

    设计器承载着低代码平台的核心功能,包括入料、编排、组件配置、画布渲染等等。由于其功能多,打磨精细难,也是低代码平台建设最耗时的地方。

    定制扩展能力

    什么是扩展能力呢,一方面我们可以快速拥有一份标准的低代码设计器,另外一方面如果有业务独特的功能需要,我们可以不用看它的源码、不用关心其实现,可以使用 API、插件等方式快速完成能力的开发。 而低代码引擎对于设计器的扩展能力支持基本上覆盖了低代码设计器的所有功能点。下图是针对标准的设计器提供了扩展功能的区域。

    低代码设计器研发框架

    低代码引擎的核心是设计器,通过扩展、周边生态等可以产出各式各样的设计器。它不是一套可以适合所有人的低代码平台,而是帮助低代码平台的开发者,快速生产低代码平台的工具。

    四 低代码解决方案选型

    帮助用户根据个人或企业需求选择合适的低代码产品。

    特性/产品

    低代码引擎

    Lab平台

    UIPaaS

    适用用户

    前端开发者

    需要快速搭建应用/页面的用户

    企业用户,需要大规模部署低代码解决方案的组织

    产品特点

    设计器研发框架,适合定制开发

    低代码平台, 可视化操作界面,易于上手

    低代码平台孵化器,企业级功能

    使用场景

    定制和开发低代码平台的设计器部分

    通过可视化, 快速开发应用或页面

    帮助具有一定规模软件研发团队的的企业低成本定制低代码平台

    产品关系

    开源产品

    基于UIPaaS技术实现, 展示了UIPaaS的部分能力

    提供完整的低代码平台解决方案,商业产品

    收费情况

    免费

    可免费使用(有额度限制),不提供私有化部署售卖

    仅提供私有化部署售卖

    官方网站

    低代码引擎官网

    Lab平台官网

    UIPaaS官网

    五 阿里低代码架构概述

    5.1 分层架构描述

    我们设计了这样一套分层架构,自下而上分别是协议 - 引擎 - 生态 - 平台。

  • 底层协议栈定义的是标准, 标准的统一让上层产物的互通成为可能
  • 引擎是 对协议的实现 ,同时通过能力的输出,向上 支撑生态开放体系 ,提供各种生态扩展能力。
  • 生态就好理解了,是基于引擎核心能力上扩展出来的,比如物料、设置器、插件等,还有工具链支撑开发体系。
  • 最后,各个平台基于引擎内核以及生态中的产品组合、衔接形成满足其需求的低代码平台。
  • 每一层都明确自身的定位,各司其职,协议不会去思考引擎如何实现,引擎也不会实现具体上层平台功能,上层平台的定制化均通过插件来实现,这些理念将会贯穿我们体系设计、实现的过程。

    5.2 引擎内核简述

    低代码引擎分为 4 大模块,入料 - 编排 - 渲染 - 出码:

  • 入料模块就是将外部的物料,比如海量的 npm 组件,按照 【低代码引擎物料协议规范】进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。 注意,这里仅是增加描述,而非重写一套,这样我们能最大程度复用 ProCode 体系已沉淀的组件。
  • 编排,本质上来讲,就是 不断在生成符合 【低代码引擎搭建协议规范】 的页面描述,将编辑器中的所有物料,进行布局设置、组件 CRUD 操作、以及 JS / CSS 编写/ 逻辑编排 等,最终转换成页面描述,技术细节后文会展开。
  • 渲染,顾名思义,就是 将编排生成的页面描述结构渲染成视图的过程 ,视图是面向用户的,所以必须处理好内部数据流、生命周期、事件绑定、国际化等。
  • 出码,就是 将编排过程产生的符合 【低代码引擎搭建协议规范】 的页面描述转换成另一种 DSL 或 编程语言代码的过程
  • 5.3 引擎生态简述

    引擎生态主要分为 3 部分,物料、设置器和插件。

    5.3.1 物料生态

    物料是低代码平台的生产资料,没有物料低代码平台则变成了无源之水无本之木。低代码平台的物料即低代码组件。因此低代码物料生态指的是:

    1. 低代码物料生产能力和规范。
    2. 对低代码物料进行统一管理的物料中心。
    3. 基于 Fusion Next 的低代码基础组件库。

    5.3.2 设置器生态

    对于已接入物料的属性配置,需要不同的设置器。

    比如配置数值类型的 age,需要一个数值设置器,配置对象类型的 hobby,需要一个对象设置器,依次类推。

    每个设置器本质上都是一个 React 组件,接受由引擎传入的参数,比如 value 和 onChange,value 是初始传入的值,onChange 是在设置器的值变化时的回传函数,将值写回到引擎中。

    // 一个最简单的文本设置器示例 class TextSetter extends Component { render() { const { value, onChange } = this.props; return <input value={value} onChange={(e) => onChange(e.target.value)} />; }}

    大多数组件所使用的设置器都是一致或相似的。如同建设低代码基础组件库一样,设置器生态是一组基础的设置器,供大多数组件配置场景使用。

    同时提供了设置器的定制功能。

    5.3.3 插件生态

    低代码引擎本身只包含了最小的内核,而我们所能看到的设计器上的按钮、面板等都是插件提供的。插件是组成设计器的必要部分。

    因此我们提供了一套官方的插件生态,提供最基础的设计器功能。帮助用户通过使用插件,快速完成自己的设计器。

    六 参考资料

    1. github源码:https://github.com/alibaba/lowcode-engine
    2. 低代码引擎:https://lowcode-engine.cn/site/docs/guide/quickStart/intro
    3. 低代码引擎技术白皮书:https://developer.aliyun.com/ebook/7507/38517?spm=a2c6h.26392459.ebook-detail.4.5ade49991qgJZQ