低代码平台业务模型设计(低代码平台业务模型设计方案)

前言

在低代码平台中,如果需要支持复杂模型多数情况下会要求具备模块级别的源码导出功能,独立模块可以导出为独立运行的原生代码方便与业系统进一步集成。在低代码平台相对成熟的今天,这一功能也成为了绝大多数商业企业级低代码平台的必备功能,本文将从模块代码导出的角度来聊一下,低代码平台的代码出码设计。

一,低代码平台常用出码模式

在用户完成基础的视图设计以及应用逻辑编排后,通常需要将业务设计通过特定的方式转化为可执行的代码及配置以便于仿真测试或者直接交付部署应用。通常这个过程有以下几种方式:

(1)模板模式(直接出码为可执行原生代码)

早在低代码相关技术诞生以前,代码生成模式就风靡于架构设计圈子。由架构师确立技术路线和代码结构,通过framake等模板语言将数据库或者通用配置批量的生成基础代码,然后交由程序员进行二次加工。

低代码平台业务模型设计(低代码平台业务模型设计方案)

这种方式优点是:

简单易操作,一个稍有经验的高级程序员即可完成整套的基础模板设计,在经过模板输出后可以大幅降低普通程序员的劳动强度。

但缺点也很明显:

首先由于模型设计过程中过于简单,缺少元数据以及元元数据属性的支撑,在代码生成时需要更高级的属性支持时只能在模板中去丰富,这就造成代码模板会被严重污染大幅降低通用性,在真实使用过程中往往会出现一个项目一套模板,甚至一个程序员都有一套自有模板的囧局。这使得项目可维护性大幅降低,另外代码在生成后,多数情况下还需要进行一些二次补充和修改。这个些过程中通常是不可逆的,这使得代码生成只能在项目初始构建的时候使用,对于功能扩展或者代码重构都无法发挥其应有的作用。

小结:

单纯的代码生成模式如果纯粹作为程序员或者微型项目组,作为代码工具使用尚可,在早期低代码平台中也比较常见于各种行业模板等应用,但随着技术进步,这种方式正在逐步被淘汰。

(2)引擎驱动模式(出码为DSL)

引擎驱动模式最早来起源于“中间件”设计,其设计目的是将大量具有通用意义的业务逻辑进行抽象包装,提供独立的数据模型业务驱动模式再根据业务特性,抽象出特定的DSL业务描述语言,例如:流程语言BPEL, 报表中延续的EXECL公式,数据库的SQL语言等等。用户通过DSL语言来描述业务结构以及数据信息,然后将DSL交由引擎去执行,从而有效实现业务与代码的解耦。这种技术在低代码平台中应用还是比较广泛的,在企业级低代码平台应用中更是标配。

低代码平台业务模型设计(低代码平台业务模型设计方案)

结构组成

低代码平台业务模型设计(低代码平台业务模型设计方案)

出码实施过程

引擎模式优点:

引擎模式是将业务模型输出为“DSL”这种中间语言,这种方式很好的解决了模型的二次维护与可逆性输出,在通用性的功能以及技术细节处理也相对更完善,能给直接用户带来更好的使用感受,在项目的重构以及后期维护方面也有不错的表现。

引擎模式缺点:

(1)易用性缺失,对使用者技术要求太高:

引擎模式有着诸多的优势,但在低代码平台除了需要强劲的功能支持以及扩展性支持外,还需要兼顾其易用性,对于低代码平台的核心用户主要还是定位在泛开发者而非专家型程序员。多引擎的设计会随着引擎细分越多、功能越强大、对于开发者而言所需的专业领域也会越宽泛。集成二次开发要求也会越来越强。而多引擎模式下所推崇的中台模式、APAAS平台初衷虽是为了更好的解耦应用实现微服务架构。但在一定程度上与低代码平台泛开发者定位是背道而驰的。往往在企业应用中往往是一旦建立起来中台,APAAS应用就成为了巨无霸的存在,使得业务缺少灵活性,技术架构更是僵硬不堪。

(2)构建过程复杂,不适合简单应用

引擎模式下,业务功能拆分会比较细,这种拆分对于构建复杂应用是有益处的,但在日常企业应用开发中在大多数的应用功能,往往是类似于:“实验数据上报”、“仪器设备管理”等等只在相对封闭的环境下使用的小功能。对于这种简单应用,引擎的功能就会显得过于强大。而其中包含的隐形规则和设计要求更使得普通开发者无所是从。

(3)引擎扩展困难

业务应用往往是复杂多变的,对引擎的要求也会多种多样,有的时候功能强大和业务实用是两个概念。单纯依靠引擎功能的无限穷举扩充来达避免业务代码对引擎的侵入有的时候会适得其反。适当的外延API允许开发者进行深度的调用开发是大多数引擎的策略。但要使用好这一策略其实并不容易,需要开发者提出了对引擎结构具备相当的熟练程度。者一点往往成为引擎模式下最大的拦路虎。

(3)DDD领域驱动设计(出码为DDD领域设计驱动语言)

领域域驱动设计(简称 ddd)概念来源于2004年著名建模专家Eric Evans 发表的他最具影响力的书籍:《领域驱动设计——软件核心复杂性应对之道》(Domain-Driven Design –Tackling Complexity in the Heart of Software),简称Evans DDD,在DDD中涵盖了业务需求分解方法,项目工程管理方法,以及其通过仓储库、领域模型等一些列概念的定义来达到其高聚合、低耦合的设计目的。

域驱动设计早期是作为软件架构设计的基础理论模型,是架构师的理论必修课。但在低代码应用中,根据DDD驱动设计模型的低代码工具则使得普通的开发者也可以设计出优秀的软件作品。这使得支持DDD理论模型成为了新一代的低代码平台理论标杆。而一系列领域模型工具的出现也大幅的降低了领域驱动设计的门槛。

领域建模模型:

低代码平台业务模型设计(低代码平台业务模型设计方案)

DDD领域驱动模式优点:

(1)简单业务与复杂引擎业务统一模型支持

领域驱动模式,是代码生成与引擎模式的加强版。在领域驱动模型中各个引擎的功能,通过通用域、支撑域等领域模型进行了更高阶的包装与描述。开发者不再单独的围绕着独立的引擎API来完成开发,而是统一到领域服务与领域事件中使用统一的领域工具完成配置应用,而简单单一的业务模型也可以通过仓储模版构建复合领域模型聚合实体库,最终统一到独立的自定义用户域服务,开发者在基于领域模型时可以有机的将二者串联起来。的以便于业务逻辑与具体实现的分离。而统一的语言环境支持则允许领域服务可直接触及各引擎的DSL规则,方便于在领域事件中有机的完成各引擎的协同工作。

(2)以业务应用为中心建模高聚合应用

领域建模设计理念上是以具体的“业务模型”为基础的,其对应的出码输出物也是可直接运行的业务代码。这一点得益于其高聚合的设计,但同时也为低代码平台向无代码过渡提供了有力的建模理论支持与技术支撑。

低代码平台业务模型设计(低代码平台业务模型设计方案)

(3)模块间的低耦合设计

DDD领域驱动设计在强调业务主导的同时,也更注重元围绕着业务主体流程及数据的元数据以及元元数据的支持,在主体业务之外采用元数据以及元元数据模型来描述业务源本身关联的事件、动作、交互展现等等。这使得业务本身的隔离性会更优秀,业务模块的之间的关联关系也更清晰。在设计业务关联以及实现时只需要关心业务本身的关联即可,而对于其他的事件,展现交互等统一作为元数据与元元数据处理实现解耦应用。

低代码平台业务模型设计(低代码平台业务模型设计方案)

元元数据配置

低代码平台业务模型设计(低代码平台业务模型设计方案)

DDD领域驱动模式缺点:

领域驱动设计高度抽象隔离了业务实现,但其作为一个新型的设计模式。对应的工具以及开发者生态还相对匮乏,对于大多数已经通过原生代码完成集成的业务模块以及基于引擎DSL语言的业务模型而言,元数据以及元元数据的剥离还需有待时日。

二,OneCode低代码引擎出码设计

OneCode低代码引擎是一款基于DDD驱动设计的通用低代码引擎。OneCode 采用Java作为原生语言,通过Java元数据注解方式,实现了一套完整通用领域驱动元数据模型。并且针对领域模型的元数据以及支撑元数据应用的元元数据提供了完整的配置管理以及元数据出码设计。开发者只需要引入OneCode元数据注解包,添加相应的元数据注解即可通过OneCode低代码引擎渲染输出为领域模型应用。

(1)OneCode 元数据注解

低代码平台业务模型设计(低代码平台业务模型设计方案)

(2)OneCode 元数据注解读取即可视化编辑

低代码平台业务模型设计(低代码平台业务模型设计方案)

(3)通用领域模型元数据设计

低代码平台业务模型设计(低代码平台业务模型设计方案)

(4)页面设计器

低代码平台业务模型设计(低代码平台业务模型设计方案)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月13日 下午12:53
下一篇 2024年5月13日 下午1:05

相关推荐

  • 深刻领悟解放思想、实事求是、与时俱进的

    解放思想、实事求是、与时俱进是中国共产党在革命、建设和改革过程中不断强调的重要理念,也是中国特色社会主义思想的核心内容。本文将从三个方面阐述深刻领悟解放思想、实事求是、与时俱进的重…

    科研百科 2024年12月7日
    0
  • app开发 软件

    随着科技的不断发展,手机已经成为人们生活中不可或缺的一部分。而手机上的各种应用程序(App)更是让我们的生活变得更加便捷和丰富。在这个信息化的时代,App开发成为了一个热门的行业,…

    科研百科 2024年2月23日
    149
  • 不确定绩效域和风险管理关系

    不确定绩效域和风险管理关系 在商业世界中,风险管理是一个重要的环节,因为不确定的环境和事件可能会导致企业面临巨大的风险。不确定绩效域是指企业可能面临的各种不确定性和风险,这些不确定…

    科研百科 2024年11月7日
    1
  • 科研项目风险区域管控报告科研项目风险区域管控报告

    科研项目风险区域管控报告 随着科技的不断进步,科研项目的应用范围也越来越广泛。然而,科研项目也面临着各种风险,这些风险可能会对项目进度、成本、质量和成果产生不利影响。因此,对科研项…

    科研百科 2024年6月14日
    94
  • 协同办公文件怎么打开(协同办公文件共享)

    协同办公文件共享:让工作更加高效 随着数字化时代的到来,协同办公已经成为了现代企业必备的一项能力。而文件共享则是协同办公中非常重要的一个环节。本文将探讨协同办公文件共享的重要性以及…

    科研百科 2024年8月27日
    29
  • Python 实现定时任务的八种方案

    作者:钱魏Way 来源:https://www.biaodianfu.com/Python-schedule.html 在日常工作中,我们常常会用到需要周期性执行的任务,一种方式是…

    科研百科 2024年4月21日
    76
  • 医学科研的主要经济技术指标

    医学科研的主要经济技术指标 医学科研是推动医学发展的重要力量,其成果对于提高疾病诊断和治疗水平具有重要意义。然而,医学科研的发展离不开资金支持,而资金的支持离不开主要经济技术指标的…

    科研百科 2024年11月12日
    0
  • 百度 amis 文档

    百度人工智能助手(Amis)是一款由百度公司开发的语音交互智能助手,它可以帮助人们完成各种任务,例如查询天气,播放音乐,设置提醒等。Amis 还可以与其他智能设备进行连接,例如手机…

    科研百科 2024年12月2日
    1
  • 校园办公协同系统

    校园办公协同系统: 实现高效协作的利器 随着现代信息技术的不断发展,校园办公协同系统已经成为提高学校工作效率和协作质量的重要工具。校园办公协同系统可以帮助教师和学生更好地协作,共享…

    科研百科 2024年9月24日
    27
  • 夯实工业基础 连云港规模以上企业有序复工复产(连云港化工园区复产进展)

    【连网】(记者 周莹 通讯员 孙冬妍 贺成东)连云港高新区特设企业复工“服务岗”,15名“服务员”入驻企业帮助企业推进复工和疫情防控:连云港石化基地疫情防控实时大数据平台上线运行;…

    科研百科 2022年8月11日
    358