低代码技术

290 阅读7分钟

主要来自阿里公布的文档和开源代码

一、基础

1.低代码是什么?

低代码是一组数字技术工具平台,基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务。通过少量代码或不用代码实现数字化转型中的场景应用创新。

或者简单的说就是通过可视化搭建的方式替代手动编码工作来完成应用开发。

通常意义上的低代码定义会有三个关键点:

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

2.低代码优点

  1. 研发效率新应用程序的加速开发和交付可能是低代码开发最广为人知的优势。直观的用户界面、拖放功能、支持工具的简单集成以及一键交付选项,都有助于确保项目更快地开发周期。事实上,低代码解决方案可以将开发时间缩短多达 90%。
  2. 生产率低代码应用程序开发简化了开发过程。这意味着开发人员可以在更短的时间内构建更多应用程序——专注于创新和满足需求,而不是微小的技术细节。
  3. 敏捷开发减少部署时间:业务敏捷性。随着市场变化和新机遇的出现,团队可以快速创建和发布新的业务产品,以满足员工和客户不断变化的需求。
  4. 人力成本 招聘、培训大量开发人员是一项昂贵的人力支出成本,开发单个移动应用程序的潜在成本从3600,000 到 18000,000 不等。低代码解决方案允许更少的开发人员完成更多工作,甚至可以让非开发人员构建应用程序。这意味着降低成本,并获得更大的投资回报。
  5. 运维成本 维护多个应用程序和部署是一项巨大的挑战。低代码开发平台提供了一个监控管理,IT 团队可以从监控管理的方式监控和控制每个开发项目。
  6. 团队协助 低代码平台还可以促进开发人员之间更好地协作。多个个人或团体可以准确地看到正在完成的任务以及该任务由谁负责,从而允许他们一起协作处理相同的模块。
  7. 扩展能力 如果您仅依靠专业开发团队来构建您的应用程序,您可能会忽略大量未开发的功能。低代码开发为技术背景有限的人提供了开发模块。这些业务人员可以使用低代码平台的预构建功能来进一步创新和发展您的业务。

3..一个低代码平台需要具备什么?

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

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

有了上面这些,你会发现即使是个技术小白,只要你了解业务,就能不受束缚的完成大多数业务应用的搭建。但低代码本身也不仅仅是为技术小白准备的。在实践中,低代码因为通过组件化、模块化的思路让业务的抽象更加容易,而且在扩展及配置化上带来了更加新鲜的模式探索,技术人员的架构设计成本和实施成本也就降了很多。

4.常见的低代码平台

  • Force.com
  • Claris
  • Mendix
  • Microsoft PowerApps

二、架构设计

以阿里低代码技术架构为准: lowcode-engine.cn/site/docs/g…

1.总体架构的分层

image.png 如上图所示,低代码整体架构设计分为四层,从下到上为协议栈、低代码引擎、引擎生态、低代码平台

2.各层职责简述

协议栈

低代码引擎体系基于三份协议来构建,分别是 《低代码引擎搭建协议规范》《低代码引擎物料协议规范》《低代码引擎资产包协议规范》, 它们保障了低代码领域的标准化,成为了生态建设和流通的基石.

概括来讲协议栈主要的职责就是两个字:"定义",主要有三个方面
定义术语 术语是团队沟通的基础,概念相通,团队才能高效沟通。根据物料的颗粒度,定义了基础组件、区块、低代码组件、模板等术语,另外还包括低代码生产过程中一些模块名称,比如编辑器、画布、事件绑定、数据绑定、渲染、出码、设置器之类的术语

定义结构 包括页面描述的结构,如何定义页面组件树、数据源、生命周期、页面状态等等。

定义行为 不同的业务场景,我们对物料的配置、约束、扩展各不相同,所以在物料描述中有各种各样的钩子来支持自定制,例如拖动钩子,点击/双击钩子等

低代码引擎

引擎是对协议的实现,同时通过能力的输出,向上支撑生态开放体系,提供各种生态扩展能力。

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

  • 入料模块就是将外部的物料,比如海量的 npm 组件,按照《物料描述协议》进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。

  • 编排,本质上来讲,就是不断在生成符合《低代码引擎搭建协议规范》的页面描述,将编辑器中的所有物料,进行布局设置、组件 CRUD 操作、以及 JS / CSS 编写/ 逻辑编排

  • 渲染,顾名思义,就是将编排生成的页面描述结构渲染成视图的过程,视图是面向用户的,所以必须处理好内部数据流、生命周期、事件绑定、国际化等。

  • 出码,就是将编排过程产生的符合《低代码引擎搭建协议规范》的页面描述转换成另一种 DSL 或 编程语言代码的过程

引擎生态

就是基于引擎核心能力上扩展出来的,比如物料、设置器、插件等,还有工具链支撑开发体系

低代码平台

基于引擎内核以及生态中的产品组合、衔接形成满足其需求的低代码平台

阿里lowcode demo: lowcode-engine.cn/demo/demo-g…