2023-03-15
LowCode
0

目录

什么是低代码?
如何开发一个低代码平台?
lowcode-engine 优势
低代码设计器
定制扩展能力
提供基础物料、插件
提供CLI工具
高质量的中文文档
渲染模块、出码模块
低代码的生产和消费流程总览
架构
分层架构
引擎内核简述
参考

当今,软件开发的速度和效率已经成为企业发展的重要因素之一。然而,传统的软件开发流程通常需要大量的时间和资源来完成。因此,很多企业开始转向low-code平台,以提高软件开发的效率和速度。阿里的lowcode-engine是其中的一款优秀平台,它为用户提供了一个基于云的可视化编程环境,使得用户可以通过简单的拖放操作,快速地创建出高质量的应用程序。

什么是低代码?

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

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

注:低代码不是银弹,它往往是某个具体层面的解决方案

如何开发一个低代码平台?

从零开发一个低代码的平台,需要考虑到很多事项:

  • 平台的架构设计:低代码平台需要一个灵活、可扩展、高可用性的架构,能够支持不同的应用场景和不同的开发人员,同时保证数据安全和用户隐私
  • 可视化编辑器的设计:低代码平台的核心功能是可视化编辑器,它需要具备良好的用户体验和易用性,能够支持拖拽式的界面设计和流程设计,同时能够生成高质量的代码和文档
  • 集成第三方组件和服务:低代码平台需要能够集成各种第三方组件和服务,如数据库、API、消息队列、人工智能等,以便开发人员可以快速构建各种应用
  • 自定义代码的扩展性:低代码平台需要支持开发人员在平台上自定义代码,以满足特定的业务需求和技术要求

当然考虑的不只仅仅上面这几点,一个成熟的低代码平台还需要考虑数据安全和用户隐私、运维和监控……,综上所述,构建一个低代码平台需要面对众多的难点,需要具备较高的技术实力和业务理解能力,如果你和我一样,不想从头开始去考虑这些复杂的事情,可以选择一个完备的低代码引擎,我选择的是 alibaba/lowcode-engine,他的优势在于:

  • 低代码设计器:包括入料、编排、组件配置、画布渲染等等
  • 定制扩展能力:支持面板扩展、物料扩展、编排扩展、设置器扩展
  • 提供基础物料、插件(数据源、JS面板、预览、出码等等)
  • 提供CLI工具,快速创建物料、设置器、插件、编辑器扩展
  • 高质量的中文文档

lowcode-engine 优势

低代码设计器

lowcode-engine直接提供了画布渲染、组件编排、组件属性配置等功能

image.png

定制扩展能力

面板 API 提供了面板扩展和管理的能力,如下图蓝色内容都是扩展出来的

image.png

此外,也可以对物料扩展、编排扩展、设置器扩展、操作辅助区扩展

image.png

提供基础物料、插件

官方提供了antd、fusion低代码物料

image.png

提供了历史插件、源码面板、Schema编辑等功能

image.png

提供CLI工具

通过官方的CLI工具,快速创建扩展,下面举一个插件开发的例子:

bash
npm init @alilc/element your-plugin-name

image.png

根据操作完善信息

image.png

高质量的中文文档

文档地址

image.png

渲染模块、出码模块

低代码引擎的编辑器将产出两份数据:

经过上述两份数据,可以直接交由渲染模块或者出码模块来运行,二者的区别在于:

  • 渲染模块:使用资产包数据、页面数据和低代码运行时,并且允许维护者在低代码编辑器中用 低代码(LowCode)的方式继续维护;
  • 出码模块:不依赖低代码运行时和页面数据,直接生成可直接运行的代码,并且允许维护者用 源码(ProCode) 的方式继续维护,但无法再利用低代码编辑器;

低代码的生产和消费流程总览

image.png

架构

分层架构

image.png 自下而上分别是协议 - 引擎 - 生态 - 平台

  • 底层协议栈定义的是标准,标准的统一让上层产物的互通成为可能。
  • 引擎是对协议的实现,同时通过能力的输出,向上支撑生态开放体系,提供各种生态扩展能力。
  • 生态就好理解了,是基于引擎核心能力上扩展出来的,比如物料、设置器、插件等,还有工具链支撑开发体系。
  • 最后,各个平台基于引擎内核以及生态中的产品组合、衔接形成满足其需求的低代码平台。

引擎内核简述

image.png

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

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

参考

阿里低代码引擎简介

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!