低代码应用版本管理能力探讨

news2024/9/8 8:39:27

低代码平台为开发者提供易用的可视化、定制化开发能力,无需编写原生代码或者只有少量代码编写就能实现需求,从而带来开发门槛的降低,开发效率的提升。低代码作为提升应用研发生产力的关键型技术,成为企业数字化转型的助推器。

低代码在开发应用的过程中会遇到一个重要问题,就是低代码平台是否需要版本管理,若不管理有什么问题,若要管理需要如何管理?

低代码需要版本管理

随低代码开发应用的深入,开发场景从个人应用到部门级应用或企业级应用,开发人员也从单人到团队开发,若不做版本管理,应用开发效率和开发质量都会降低,会导致业务应用异常或中断频发,直接影响到企业的生产运营。

  • 异常错误无法回退:若没有应用版本管理,应用新需求发布上线出现错误时将无法恢复到之前的版本,只能手工修改回去,整个过程耗时长,容易出错,会中断业务运行;
  • 误操作时无法回滚:若没有记录版本修改轨迹,误操作时无法恢复到之前状态,导致应用不可用;
  • Bug无法及时修复:若不具备分支管理,应用上线后出现Bug时只能在当前应用去解决,需要投入更多人力验证当前应用新增功能,导致Bug无法及时修复,影响业务运营;
  • 功能重复开发:若没有分支合并能力,Bug修复等需要在多个版本上逐一修复,造成重复开发,增加了企业成本;
  • 发布变更无法评估:若没有版本比对,版本发布时候不清楚发布变更内容,增加了业务发布风险;
  • 无法多人协同开发:若没有细粒度的版本控制能力,只提供整个应用粒度的版本控制,一旦有人修改应用会锁定整个应用,别人将无法修改应用,无法多人协同开发同一个应用。这会限制开发效率,延长需求交付周期。

既然版本管理对低代码平台非常重要,那如何让一个低代码平台具备版本管理的相关能力。

如何具备版本管理能力

传统开发是使用git等版本控制系统,git能够记录一个或若干文件内容变化,支持查阅特定版本修订情况,支持任何类型的文件进行版本控制。传统开发中程序员是通过git的IDE插件进行便捷的版本拉取、版本提交等版本操作。

低代码平台的用户大部分不是程序员,需要提供一个简单易用的、集成到低代码平台中版本管理工具。

模型要求

首先低代码平台模型设计必须符合一定要求,为后续版本控制和多人并行开发等提供基础支撑。

>>>>应用版本相关实体

需要设计应用、应用版本的相关实体,能够记录每个应用实例的信息,支持记录每个实例的基础信息、环境信息、租户信息、权限信息等,应用版本实例支持记录应用实例的每个版本记录,便于后续版本发布、回退和回滚。

>>>>组件版本相关实体

需要设计应用下的组件、组件版本相关实体,组件实体支持记录组件类型(如模型、页面、服务、流程、接口等)、组件基础信息、应用版本信息,组件版本相关实体可以记录当前应用版本下的组件实例修改轨迹,支持回滚到任意版本。

版本控制管理

基于版本相关实体模型,需要提供简单易用的版本控制管理。考虑用户又不是程序员,所以版本比对和合并部分需要结合低代码平台自身提供可视化工具,而非直接低代码的JSON文件比对。

>>>>版本存储

版本存储可以考虑采用git版本控制系统或则基于数据库进行存储。确保存储和管理所有应用版本的历史记录。

>>>>版本创建

需要提供可视化界面,支持创建多种类型的版本分支,支持创建开发分支、热补分支等。创建的分支可以独立进行开发,不影响原有分支。

>>>>版本发布

需要提供可视化界面,支持开发完、测试好的分支版本进行封版,封版后作为生产版本或主干版本。

>>>>提交和回滚

对组件进行修改时候,每次修改都可以提交为一个组件版本轨迹,组件的版本轨迹可以回滚到任意版本。若误操作时可以回滚到上一个版本轨迹即可。

>>>>版本比对

需要提供结合低代码平台元数据相关的可视化的版本比对工具,支持按应用组件分类可视化展示版本差异,支持展示出各类组件的新增、修改、删除的变化,对于修改的组件,可以进一步比对两个组件版本的差异内容,最好能提供组件内元素修改差异比对。以浩鲸科技灵犀平台为例,可以提供可视化的版本比对工具:

图片

版本的差异可视化比对:按组件分类进行展示

图片

某类组件差异:按组件新增、修改、删除可视化分类展示

图片

单个组件差异:修改的组件可以比对内部元素差异

图片

组件元素差异:可比对元素内容差异

>>>>版本合并

对于修复的Bug等热补分支或特性分支,提供自动合并工具,对于无冲突部分可以自动合并到开发分支,对于有冲突部分,提供仲裁机制,由应用拥有者或应用管理员进行仲裁。

>>>>版本历史

需要记录应用的版本和组件版本的历史,记录对应的修改人、修改时间、修改内容等信息。

多人协同开发

除了基础上的版本控制管理,为支持多人协同开发,需要再低代码应用组件化和元数据的基础上,提供组件实例粒度锁定机制来实现多人协同开发,锁定模式需要考虑锁定机制、通知机制、解锁能力、合并处理等。

>>>>锁定机制

锁定机制可以根据用户的操作自动触发锁定。例如,当用户打开某个组件进行编辑时,系统自动为该组件加乐观锁,若想避免冲突可以直接加悲观锁;若用户进行了长时间或高频次的编辑操作,系统可自动升级为悲观锁,防止其他用户意外覆盖其更改。

>>>>通知机制

通知机制要考虑锁定提示和解锁提示。用户尝试编辑已被其他用户锁定的资源时,系统应立即给出锁定提示,告知用户该资源当前被谁锁定以及锁定时间。当锁被释放时,也进行相应通知,确保用户及时了解资源状态。

>>>>实时预览

提供实时或接近实时的预览功能,可拉取最新的版本提交,让开发者能即时看到同伴的更改提交的效果。

>>>>解锁管理

要提供锁定信息和解锁处理。提供界面展示当前所有被锁定的资源及其锁定信息(如锁定者、锁定时间、锁类型等),也提供锁定者或其他具有相应权限的用户手动解锁的功能。同时,系统支持对于长时间未释放的锁支持发送提醒或强制解锁处理。

>>>>冲突处理

采用乐观锁机制会出现多人修改冲突,需要通过版本控制管理的比对和合并工具进行冲突的合并处理,冲突由应用管理员或特定角色进行裁决。若采用悲观锁机制,则不会出现冲突问题。

组件关系分析

为更好评估组件变更影响和版本发布影响 ,还需要提供组件关系分析能力。IDE开发时IDE提供类关系分析能力。低代码平台也需要提供类似能力,需要由低代码平台根据各自元数据提供组件关系分析工具。

其实应用产物的JSON文件记录了相关组件关系,低代码平台分析JSON文件可生成组件依赖关系或血缘关系,关系可考虑图数据库存储,再提供可视化展示,就可以清晰展示影响。并可以在这个基础上进一步考虑自动校验和自动纠正能力。

>>>>依赖关系

可根据应用的JSON文件分析出组件的依赖关系,并提供可视化展示,可更加直观评估变更组件的影响和风险,可根据依赖关系评估当前修改影响到的相关组件。技术层面可以引入图数据库技术存储关系。以浩鲸灵犀开发平台为例,提供血缘关系分析:

图片

组件血缘关系:展示组件引用和被引用的关系

>>>>自动校验

根据组件依赖关系,对每个组件属性修改时,可触发进行自动校验,比如服务入参新增,可以自动校验服务调用方需要增加参数映射。

>>>>自动纠错

根据自动校验出的错误,可提供自动纠错功能,可以自动修订错误。

当然,上述只是低代码管理的主要能力,其实还需要考虑应用配置数据、脚本、文档等管理,还需要考虑低代码的发布工具等。版本管理能力可以让低代码开发质量更高,开发效率更高,开发场景覆盖更广,开发团队组织更灵活,成为企业数智化转型的助推器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

StarRock3.3 安装部署(存算分离、存算一体保姆式教程)

服务器前置要求: 1、内存>32GB 2、JDK 8 is not supported, please use JDK 11 or 17 1、安装 wget https://releases.starrocks.io/starrocks/StarRocks-3.3.0.tar.gz tar zxvf StarRocks-3.3.0.tar.gz 2、FE服务启动 2.1 配置FE节点(默认配置,…

C#知识|文件与目录操作:文本读写操作

哈喽,你好啊,我是雷工! 今天学习文件与目录的操作,以下为文本读写操作的学习笔记。 01 文件操作说明 1.1、数据的存取方式 数据库:适合存取大量且关系复杂并有序的数据; 文件:适合存取大量但数据关系简单的数据,像系统的日志文件; 1.2、文件存取的优点 ①:读取操…

根据ip地址能查询出具体地址吗?

在数字化时代,互联网已成为我们日常生活不可或缺的一部分,而IP地址作为网络世界的“身份证”,承载着每一台设备在网络中的唯一标识。你是否曾经好奇,通过一串看似无意义的数字组合——IP地址,我们究竟能否揭开其背后的…

springboot校园失物招领系统-计算机毕业设计源码17082

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 相关技术介绍 2.1 B/S结构 2.2 Spring Boot框架 2.3 MySQL数据库 3系统分析 3.1 可行性分析 3.2 系统流程分析 3.2.1 数据新增流程 3.2.2 数据删除流程 3.3 系统功能分析 3.3.1 功能性分…

解决亚马逊测评困境:买家号支付失败与砍单率高的应对策略

在销售旺季期间,众多商家倾向于采用自建买家账号进行产品评价,以期快速提升产品权重。然而,不少商家在此过程中遭遇了订单无法成功提交或遭遇高比例订单取消的困境。部分商家首先怀疑的是支付卡的问题,也有部分认为IP地址可能已被…

拥抱人工智能浪潮,95后如何为未来职场做好准备?

随着毕业季的落幕,新一代青年力量步入社会,他们面临的是一个正在被人工智能深刻改变的劳动力市场。特别是对于“95后”这一群体,如何在即将席卷而来的人工智能革命中站稳脚跟,甚至乘风破浪,成为摆在他们面前的重要课题…

在 Kali Linux 虚拟机中实现主机代理共享的详细指南

Kali Linux 是网络安全和渗透测试领域中广泛使用的操作系统。它提供了丰富的工具和灵活的环境,适合各种网络安全任务。在某些情况下,您可能需要通过主机的代理服务器来实现特定的网络配置,以便更好地保护隐私或进行网络测试。这篇文章将详细介…

昇思25天学习打卡营第18天|xiaoyushao

今天分享基于MobileNetv2的垃圾分类。读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 目录 一、 MobileNetv2模型原理介绍 二、 数据处理 1. 数据准备 2. 数据加载 3. 数据预处理 三、 MobileNetv2模型搭建 四、…

Redis 7.x 系列【34】Spring Boot 集成

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 前言2. Spring Data Redis3. Spring Boot Data Redis Starter3.1 起步依赖3.2 自动…

精品PPT | 微信云原生大数据平台构建及落地实践.pptx

一、大数据上云概述 1.为什么大数据要上云 2.微信大数据平台架构演进 二、大数据上云基础建设 1.统一编排 2.Pod 设计及大数据配套能力 3.计算组件云环境适配 三、稳定性及效率提升 1.K8S 集群稳定性与弹性配额 2.可观测性与智能运维

Java学习笔记(六)面向对象编程(基础部分)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java面向对象编程(基础部分)类与对象、方法重载、作用域、构造器细节、this关键字、可变参数使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟&#x1…

C# 12 新增功能实操!

前言 今天咱们一起来探索并实践 C# 12 引入的全新功能! C#/.NET该如何自学入门? 注意:使用这些功能需要使用最新的 Visual Studio 2022 版本或安装 .NET 8 SDK 。 主构造函数 主构造函数允许你直接在类定义中声明构造函数参数,…

停车共享小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,停车场管理,停车预约管理,停车缴费管理,系统管理 微信端账号功能包括:系统首页,停车场,我的 开发系统&…

主图趋势交易九稳量化系统 期货指标公式大全 最准的期货指标源码 看期货涨跌最简单的方法文华财经指标公式源码

交易的动机必须来自于内心,一种解决问题的执着。在整个交易生涯的漫长岁月里,无法始终保持这种热忱。除非亲身体验,否则很难理解这种疯狂的热忱。这是一种高度的专注,其他一切好像都不存在,视野之内没有其他的东西。这…

【STL】之 vector 使用方法及模拟实现

前言: 本文主要讲在C STL库中vector容器的使用方法和底层的模拟实现~ 成员变量的定义: 对于vector容器,我们首先采用三个成员变量去进行定义,分别是: private:iterator _start; // 指向数据块的开始iterator _finish…

论文解读(10)-图神经网络

加油,继续看论文。 这次学图神经网络,这个概念经常在其他论文里出现,所以我想先学习一下这方面的知识。 参考: 【图神经网络综述】一文道尽GNN原理、框架和应用-CSDN博客 【图神经网络】10分钟掌握图神经网络及其经典模型_图神经…

网络爬虫必备工具:代理IP科普指南

文章目录 1. 网络爬虫简介1.1 什么是网络爬虫?1.2 网络爬虫的应用领域1.3 网络爬虫面临的主要挑战 2. 代理IP:爬虫的得力助手2.1 代理IP的定义和工作原理2.2 为什么爬虫需要代理IP?2.3 代理IP如何解决爬虫的常见问题? 3. 代理IP的…

shapeit填充

使用shapeit软件进行填充 一,安装 下载地址, 官网里面写得很详细。 https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.html 二,步骤 官网里面每一个参数都很详细 1.拆分染色体 for chr in {1..24}; do plink --vcf /…

基于dcm4chee搭建的PACS系统讲解(三)服务端使用Rest API获取study等数据

文章目录 DICOMWeb Support模块主要数据结构ER查询信息基本信息metadata信息统计信息 实践查询API及参数解析API返回的json数组定义VRObjectNodeObjectMapper解析显示指定tag并解析 后记 前期预研的PACS系统,近期要在项目中上线了。因为PACS系统采用无权限认证&…

Embeddings 赋能 - AI智能匹配,呈现精准内容

🚀前言 在当今的 AI 时代,传统的相关内容推荐和搜索功能已经显得相对简单和低效。借助 AI 技术,我们可以实现更加智能化和个性化的内容发现体验。 本文将为大家介绍如何利用 OpenAI 的 Embedding 技术,打造出智能、高效的相关内容推荐和搜索功能。 🚀…