通用的低代码实现方案研究

(整期优先)网络出版时间:2024-01-20
/ 3

通用的低代码实现方案研究

张聪萍

中国银联  201201

摘要:本文旨在通过研究现有的各类低代码实现方案,探讨如何实现通用的低代码方案,使其能够满足前端应用、后端应用、脚本生成器、服务生成器、资源编排等各类场景。文章首先介绍了低代码的基本概念和原理,然后分析了现有的低代码实现方法,接着探讨了实现通用低代码方案的需求和挑战,最后提出了通用低代码方案的设计思路和实现方法。本研究对于理解低代码技术的实现原理和应用具有重要的理论和实践意义。

关键词:低代码技术  通用实现方案  多场景适用 

引言:随着信息技术的发展,软件开发的需求日益增长,而传统的开发方式已经无法满足快速迭代和高效开发的需求。低代码开发作为一种新的开发模式,通过预设好的组件和可视化编排,使得开发者可以快速构建应用程序,大大提高了开发效率。然而,现有的低代码实现方法往往局限于特定的应用领域,如何实现通用的低代码方案,使其能够满足前端应用、后端应用、脚本生成器、服务生成器、资源编排等各类场景,成为了一个亟待解决的问题。本文将对此进行深入研究,探讨如何通过优化设计和技术手段,实现通用的低代码方案。

一、低代码的基本概念与原理

低代码实质上不是一个新颖的话题,也不是最近才有的技术突破和创新,实则是存在十几二十年的概念。广义上的低代码平台包括低代码平台和零代码平台,它们都属于APaaS(Application Platform as a Service应用平台即服务),两者的主要区别在于对代码的依赖程度:低代码平台面向开发人员,专业性较强,可以提高开发效率,但要求使用者具备一定的技术基础;零代码平台降低了开发门槛,从而将用户范围扩展到了业务人员。

一般来说,我们可以定义低代码为:一种软件开发方法,它通过使用预设好的组件和可视化编排,使得开发者可以快速构建应用程序,减少了代码编写的工作量。

低代码平台的核心是可视化编辑,也被称为可视化编程。这是因为非可视化编辑就是代码编辑,而只有代码编辑的产品不会被认为是低代码。因此,可视化编辑是低代码的必要条件。

低代码平台通常提供拖放界面和可视化建模工具,这些工具可以让业务用户快速地构建应用程序,大幅减少需要手动键入的代码数量。此外,低代码平台还提供开箱即用的功能,如自动化和人工智能(AI)工具,这些工具可以高效构建流程自动化功能,以执行重复的业务任务,例如数据输入、基于规则的流程等功能。

低代码优势有:1)落地快、上线快、迭代快:低代码开发平台可以帮助团队快速构建和部署应用程序,同时也便于进行快速迭代和更新;2)全民开发,成本较低:低代码开发平台的易用性使得非技术人员也可以参与到应用程序的开发中来,这可以降低开发成本,提高开发效率。

同样的,没有银弹,低代码平台也有明显的局限性,至少就目前来说,它主要用于搭建企业软件,因为此类软件架构是有一定规律的,低代码平台的产品设计者正是找到了这种规律,但它并不适合娱乐、社交等软件开发。

二、现有的低代码实现方法

2.1 现有的低代码平台介绍

目前主流的低代码平台包括奥哲、腾讯云微搭、ClickPaaS、简道云、JeecgBoot、明道云、宜搭、牛刀、敲敲云、MyApps、泛微、轻流、IVX平台等。下面将依次分析这些平台的实现方案。

奥哲:奥哲低代码开发平台支持可视化方式,无需或少量编写代码即可快速搭建各种应用系统。

腾讯云微搭:微搭是腾讯云开发的低代码开发平台,提供高度开放的开发环境,将繁琐的底层架构和基础设施抽象化为图形界面,通过行业化模板、拖放式组件和可视化配置快速构建多端应用。

ClickPaaS:ClickPaaS是基于云原生技术开发的系统基座,以分布式设计保证系统性能和扩展性,支持HA,微服务架构,容器化部署,独立于iaaS的组件确保了平台的独立性,提供DevOps环境用于深度扩展和定制。

简道云:简道云是一个零代码轻量级应用搭建平台,有表单、流程、仪表盘、知识库等核心功能。通过拖拉拽的操作方式,可以在线制作表单,对接流程等。

JeecgBoot:JeecgBoot是一款基于BPM的低代码平台,前后端代码可一键生成,实现低代码开发。可帮助Java项目解决80%的重复工作,让开发更多关注业务,既能快速提高效率,节省研发成本,同时又不失灵活性。

明道云:明道云是一个APaaS平台,帮助企业快速搭建个性化业务应用。平台内的自动化工作流实现审批、填写等控制流程和业务自动。

宜搭:宜搭是阿里巴巴自研的低代码应用构建平台,通过可视化拖拽的方式完成开发应用。用户可以在可视化界面上以拖拉拽的方式编辑和配置页面,表单和流程,并一键发布到PC和手机端。

牛刀:牛刀支持可视化设计和开发,包括应用基本架构、服务、数据、代码、页面等,都能完全可视化、拖拽式设计等。

敲敲云:敲敲云是一个零代码应用搭建平台,通过可视化拖拽方式搭建应用系统,也可以通过模板库一键生成,满足用户个性化需求。

MyApps:MyApps是天翎自主研发的第四代可视化低代码快速开发平台,用户通过拖拉拽配置式操作即可快速构建出能同时在PC和移动端运行的各类管理系统。

泛微:泛微以“组织权限引擎、建模引擎、流程引擎、集成引擎、内容引擎、门户以及消息引擎”等7大引擎为支撑,帮助组织打造开放共享的低代码应用构建平台。

轻流:在线业务流程系统可以通过轻流进行定制。通过人员,流程和数据的管理,增强企业价值流;通过在线协作,共享,业务沟通,创建“新一代”企业动态数据库。

IVX平台:IVX平台是0代码可视化编程工具,可以快速生成网站,本机APP和完全集成的“微信小程序”开发环境。也可以直接生成源代码。

2.2 现有低代码平台分析与总结

通过对上述十多个现有低代码平台的分析,总结发现低代码平台通过提供可视化编辑模型驱动开发云服务集成多端适配灵活迭代等核心功能,实现了快速、高效的应用开发和部署。其中主要使用的技术有:1)可视化编辑工具:通过拖拽界面元素和配置属性来设计页面和应用逻辑。2)模型驱动架构:基于业务模型的设计,通过模型转换和解析来生成应用程序。3)云原生技术:利用云计算资源和服务,如云函数和API网关,来扩展应用的功能和性能。4)组件化和模块化:构建可复用的组件和模块,以便在不同应用中快速部署和迭代。5)集成开发环境:提供一站式的开发环境,包括代码编辑、调试、测试和部署工具。

三、通用低代码方案的需求和挑战

现有的低代码平台虽然具有许多优点,但也存在一些缺点和不足,其主要问题在于:预设难以与发展的需求相匹配。低代码本质是将预设的组件或模版以可视化编辑的方式组合后再解析成专业代码的过程,这决定了低代码是已有经验的提炼,当有新的需求时,低代码平台则不能满足。

为了解决这个问题,本文提出了一种通用低代码的实现方案。

四、通用低代码方案的设计和实现

通用低代码需具备以下特点:1)快速满足发展的需求,低代码平台不应该局限于在预设的范围内,而应该是一种新的开发方式。当有新的需求时,不再是面向需求开发一套次抛系统,而应该是面向低代码平台开发,开发新的预设集成至低代码平台,这不仅可以实现此次需求,还可以实现该类需求以及组合该类需求的新需求。2)适合多类场景,包括但限于前端应用、后端应用、脚本生成器、服务生成器、资源编排等。大部分场景都可以提炼出范式形成组件、模版,再通过编排组合、属性设置等来创建更高层级的产出物,从而满足各类场景需求。

通用的低代码平台应该是一种基础研发设施,是既有和未来研发经验的仓库,是组合创新的生产工厂。它由四大部分组成:1)物料引擎:提供物料开发脚手架,将已有的组件、模版转化成低代码物料。新的需求提出时,基于物料脚手架可快速开发出新的低代码物料。支持物料在线导入,支持物料自由组合成新的物料。2)可视化编辑器:物料在通用低代码平台中抽象成图形或UI组件,通过拖拉拽图形或UI组件在可视化编辑器中编辑。3)出码引擎:解析可视化编辑后的产物(低代码协议Schema)生成源码,与现有各类项目模版进行灵活融合,形成最终的可应用于生产的项目源码。4)扩展引擎:提供扩展API,集成日益发展的工具,例如:AI辅助编程、在线构建、在线部署等。

4.1 物料引擎

通用低代码的物料由配置、描述、源码三部分组成。配置即物料的变量部分,由低代码用户设置,描述即在可视化编辑器中表现形式(例如:图形、UI组件等),源码即物料对应的源码模版。

日常研发中为了满足需求实现的功能可以拆解成一个个模块,变量部分作为配置,再将其抽象成图形或UI组件来描述,即可转化为低代码物料。物料引擎通过解析物料,按照物料描述在平台中展现物料、可视化编辑物料,出码时将收集到的配置和编辑操作,结合物料源码模版生成最终源码。

4.2 可视化编辑器

可视化编辑器支持拖拉拽图形或UI组件等物料,支持在编辑器中添加、删除、移动、配置、连接物料。其中连接物料是指表达物料吱声或物料之间的关系,例如先后、条件、循环、嵌套等关系。

4.3 出码引擎

出码引擎主要包含2个功能,一个是解析可视化编辑后的产物(低代码协议Schema),结合物料的源码模版生成最终源码;另一个是将生成的源码与项目模版进行融合。前者能生成的仅是代码片段,无法直接应用于生成,后者是各类场景的项目模版或基础架构。两者融合后才是完整的业务系统源码。

4.4 扩展引擎

扩展引擎开放物料API、可视化编辑API、出码API,其它工具可以通过调用开放API来提效低代码。例如1)通过调用出码API获取出码后的源码,通过在线构建、在线部署功能实现一键部署;2)通过调用物料API、可视化编辑API,AI辅助编程可以实现生成式低代码开发。

五、通用低代码的开发模式及未来发展

应用本文提出的通用低代码,开发模式为:1)低代码用户使用通用低代码平台可视化实现业务需求,当低代码平台不满足需求时,向研发人员提出需求;2)研发人员基于需求开发新的低代码物料;3)其它研发人员基于低代码开放API开发低代码工具。

通用低代码的开发模式可以满足快速发展的需求、可以满足多场景诉求。不同于传统开发模式,通用低代码可以实现源代码数据模型化,即源代码也是一种可描述的数据。通过不断积累源代码,辅助人工智能,最终可以实现人工智能生成可直接应用于生产的应用系统。

结论

本文通过深入研究和分析,提出了一种通用的低代码实现方案。这种方案不仅可以快速满足发展的需求,而且适合多类场景,包括前端应用、后端应用、脚本生成器、服务生成器、资源编排等。通用的低代码平台应该是一种基础研发设施,是既有和未来研发经验的仓库,是组合创新的生产工厂。它由物料引擎、可视化编辑器、出码引擎和扩展引擎四大部分组成。通过这种方式,我们可以实现源代码数据模型化,即源代码也是一种可描述的数据。通过不断积累源代码,辅助人工智能,最终可以实现人工智能生成可直接应用于生产的应用系统。

然而,我们的研究还存在一些不足之处。例如,方案在实际应用中可能还需要面临一些未知的挑战。总的来说,本文的通用低代码方案为低代码开发提供了一种新的可能性,有望推动该领域的进一步发展。