带你一步步实现低代码开发平台——概述、实现模式、整体框架

概述

当下,低代码与无代码的概念正炙手可热,市面上涌现了众多相关平台。客观而言,低代码开发平台确实通过配置化的方式显著提升了开发效率,降低了成本,并缩短了项目周期。同时,这种开发方式也降低了对开发人员的技能要求,所生成的代码更为标准化,有效减少了低级错误,间接提升了软件质量。

然而,低代码开发并非是一个全新的概念,其历史可追溯至较早时期。在一个软件系统中,许多功能具有共性,这些功能可以通过抽象建模和标准化来简化开发流程。例如,单实体(如计量单位)对应单张数据表,展示和操作方式相对简单;一主多从实体(如销售订单)涉及多张数据表,并需通过关联展示;而树状实体(如组织机构)则形成了自关联的层级结构,需要左树右表的布局设计。

对于这些共性功能的抽象建模和标准化,是实现配置化开发的关键。通过配置数据定义和模板技术,我们可以生成程序源码,这正是代码生成器的基本功能。在应用开发平台中,代码生成器扮演着类似于工业生产中“机床”的角色,能够高效地产出标准化的代码。代码生成器的意义在于将软件系统中大量重复性的开发工作,也就是通常所说的“体力活”,通过简单配置来实现,大幅提升开发效率。

然而,仅有代码生成器是不足以应对复杂业务逻辑和个性化前端页面需求的。这些方面仍然需要专业的开发人员,依托原生开发模式进行深入定制。因此,低代码开发平台的核心虽然是代码生成器的高级形态,但它仍然需要与原生开发相结合,才能充分发挥其优势,实现更为高效、灵活的应用开发。

实现模式

低代码平台的核心特点在于其配置化导向的实现模式,主要可分为库表驱动、表单驱动和模型驱动三类。

库表驱动

这种模式紧密贴合传统开发流程,首先利用数据库建模工具(如PowerDesigner)设计并生成数据库表。随后,通过读取库表信息,平台能自动逆向生成控制器层、服务层、数据库读写层等各层代码。当前流行的MyBatis框架所集成的代码生成器,便是基于这种思路与方式实现的。

表单驱动

表单驱动模式提供直观的布局和UI组件,允许用户通过可视化配置快速搭建业务表单。平台会根据配置自动生成相应的数据库表和功能页面。该模式下服务层实际被“弱化”了,通常通过少量通用服务来适配。这种直接面向表单的配置方式,往往只适用于构建一些简单业务功能,如疫情期间快速搭建信息收集表。因其局限性,面对复杂业务功能挑战非常大,显得“乏力”。

模型驱动

模型驱动模式则强调先创建模型,再基于模型生成库表,并在模型之上定义视图(即页面)。这种模式非常适合将物理世界抽象为软件系统中的虚拟实体,无论是面向对象还是领域驱动设计,都能得到很好的支持。不过,由于其高度的抽象性和灵活性,自身实现起来也相对复杂。

框架设计

本平台最终选用的是模型驱动的实现模式,整体框架设计如下图。
在这里插入图片描述

模块配置

一个软件系统通常会划分成多个功能模块,例如:开发平台由系统管理、实体配置、任务调度等模块组成。
每个功能模块内部都包含了多个与之相关的实体,例如在系统管理模块中,组织机构、用户、角色、日志等核心实体。通过模块化的划分,我们可以更加清晰地组织和管理系统的各项功能。

模块配置提供了对系统模块的增删改查基础功能。

实体配置

实体是软件系统中可供管理的基础单元,它们代表了实际的业务对象,如采购订单、供应商等。实体与功能模块紧密相关,体现了业务角度的逻辑概念。在配置实体时,我们需要明确它们所属的功能模块,以及它们之间的关联关系。

实体配置提供了对模块下实体的增删改查基础功能。

模型配置

实体是一个逻辑概念,模型是其物理实现。
每个实体都对应着一个或多个模型。例如,销售订单实体通常由销售订单和销售订单明细两个模型共同组成。在这些模型中,有一个被称为主模型,它负责主导实体的核心属性和业务逻辑。模型与数据库中的库表存在一对一的映射关系,模型属性对应着库表中的字段。但值得注意的是,这种对应关系并不总是一一对应的,因为模型属性可能涉及对基础属性的组合或逻辑计算。例如,在用户模型中,虽然出生日期是一个基础属性,但我们还可以基于它计算得到用户的当前年龄这一派生属性。

常见的模型类型主要包括单表模型、主从模型和树状模型。每种模型都有其特定的应用场景和优势,根据实际需求选择合适的模型类型对于提升系统性能和用户体验至关重要。

模型配置提供了对实体下的模型的增删改查功能。

视图配置

视图对应着功能页面(Web)或窗体(Form),抽取共性,建模产生以下类型的视图

  • 列表视图
  • 新增视图
  • 修改视图
  • 查看视图
  • 树视图
  • 树表视图
  • 主从视图
  • 参照视图
  • 自定义视图

对于仅对应单一模型的普通实体,如用户,它涵盖了列表视图、新增视图、修改视图和查看视图,这些视图分别满足查询、新增、修改和查看等基本操作需求。值得注意的是,删除功能并非一个独立的页面,而是作为一个功能按钮集成在列表页面中,便于用户进行快速操作。

当面对自关联的实体,如组织机构时,平铺的列表视图难以展现层次关系,直观性差。此时,树表视图便成为理想的选择。它结合了树视图和列表视图的特点,左侧展示树形结构,直观呈现层次关系;右侧则是列表,详细展示每个节点的信息。这种复合视图的设计大大提高了数据的可读性和操作的便捷性。

对于主从关系的实体,如销售订单,主从视图是一种非常适用的展现方式。与树表视图类似,主从视图也是一种复合视图,能够同时展示主表和从表的信息,方便用户对主从关系的数据进行管理和操作。

参照视图则是用于其他实体关联属性时的选择页面。根据关联属性的不同特点,参照视图可分为普通参照、树参照和列表参照三种类型。例如,在选择合同时,一个简单的数据列表即可满足需求,这就是普通参照的应用场景。而在选择组织机构时,由于需要展现层次关系,因此树参照更为合适。对于用户选择等复杂场景,树表参照则能够提供更丰富、更灵活的选择方式。

最后,自定义视图则用于满足一些特殊或个性化的页面需求。由于这些需求往往无法进行标准化配置,因此需要通过原生开发来实现。通过指定路径,将这些自定义视图纳入到整个体系中来,从而为用户提供更加个性化和灵活的操作体验。

开发平台资料

平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT

如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯,行者无疆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值