【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索
低代码开发平台的出现,大大地提高的产品交付效率,但是在协同开发、敏捷迭代的场景下,也暴露出了一些问题。
例如:
多人同时对项目进行修改,相互影响甚至修改内容被互相覆盖;
同一项目下多个需求同步开发,但需求上线日期不统一,无法拆分上线等等。
本文将根据不同诉求,渐进式的讨论支持并行开发的各种解决方案。
低代码开发平台(Low-Code Development Platform,LCDP),帮助用户使用可视化图形界面(拖拽搭建或配置化方式)编写应用程序,而无需进行传统的编程开发。
低代码开发平台的研发团队往往把更多的经历投入到应用程度搭建过程的完善和丰富上(例如,丰富可通过搭建实现的功能,优化拖拽搭建的交互体验等),而忽略了项目交付过程的能力和体验。
一、项目整体交付
大部分低代码平台,尤其是具备出码能力或托管部署能力的低代码平台,都会采用项目整体交付的形式提供服务。
在用户触发交付流程时,低代码平台会以当前时刻的项目配置、页面配置等,进行代码生产、CI/CD流水线等操作。



二、缩小交付颗粒度
为了提升交付的灵活性,可以通过缩小交付颗粒度的方式,一定程度上的避免多人开发相互影响以及多需求同时开发的问题。例如以页面维度作为最小独立可发布单元。


三、虚拟分支交付
在进行实际需求开发过程中,往往会出现同一需求需要对多个页面进行修改,且修改内容相互依赖的情况。此时可以引入一种类似于代码开发过程中使用的分支的概念,将多个页面与“分支”进行关联,使用“分支”作为可发布单元,同一“分支”下的页面同步上线交付。



用户在进行需求开发时,可以创建一个虚拟“分支”,在该分支下进行页面搭建时,页面会被划入该“分支”,其他“分支”无法再次编辑此页面。需求交付时,可以将该“分支”下的全部页面同时发布部署。
四、分支与合并
尽管我们可以将可交付的最小单元定义为页面,但仍然会出现多个需求同时需要修改同一页面的情况。
低代码平台往往使用页面维度进行配置信息的存储与管理(即每个页面为一个完成配置文件),当多人或多个需求需要对同一个页面(配置文件)进行修改时,必然会产生多个副本,且交付时必须经过合并的过程。此时我们便需要真正的引入开发分支,以及分支合并、解决冲突等内容了。



若同一页面被分别修改、分别部署时,后发起交付流程的用户需要经过“合并”流程。
此时平台会展示自用户开始修改页面的时刻起,其他用户或需求修改并交付的修改内容,与本次修改内容的对比。若“差异”互不影响,则可以自动“合并”;若“差异”存在“冲突”,则需要由用户来进行决策。
五、可视化分支合并
低代码平台的使用者很可能是非研发人员,而且即便是研发人员,也很难要求用户理解配置文件的内容。此时就需要一种可视化的分支合并与解决冲突的交互方案。

在左侧预览区域,可以高亮展示存在差异或冲突的元素。并在右侧配置区分别展示“线上状态”和“本次修改”的内容,使用“差异”图标高亮不同的配置项内容。用户可以通过点击“差异”图标,切换左侧预览区展示的版本。并在确认后进行保存。
未来畅想 - AIGC
在进行低代码协同开发过程中,可以尝试引入AIGC进行配置信息的理解和分析,帮助用户理解、描述修改的内容,发现问题漏洞,并且在进行配置合并时给出建议。

作者:京东零售 牛晓光
来源:京东云开发者社区 转载请注明来源
【低代码】低代码平台协同&敏捷场景下的并行开发解决方案探索的更多相关文章
- 基于webpack的前端工程化开发解决方案探索(二):代码分割与图片加载
今天我们继续来进行webpack工程化开发的探索! 首先来验证上一篇文章 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML 中的遗留问题:webpack将如何处理按需加载的 ...
- .NET下的并行开发(案例代码)
以下主要是通过一个报表处理程序来说明并行开发的方式.对于数据冲突和共享,可以通过对象数组解决.设计到并行的核心代码已用红色标出.在并行程序的处理上,需要把原来串行的子公司变成一个一个类的对象,让所有的 ...
- 曹工说JDK源码(4)--抄了一小段ConcurrentHashMap的代码,我解决了部分场景下的Redis缓存雪崩问题
曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位? 曹工说JDK源码(2)--ConcurrentHashMap的多线 ...
- 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研
想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研 http://blog.csdn.net/testing_is_believing/article/details/22 ...
- [代码质量] 代码质量管控 -- 复杂度检测 (JavaScript)
转载自: https://juejin.im/post/59bb8b546fb9a00a4247532e 背景 代码的复杂度是评估一个项目的重要标准之一.较低的复杂度既能减少项目的维护成本,又能避免一 ...
- HTML中的IE条件注释,让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案
最近的项目中,因为需要兼容IE7,IE8,IE9,解研究了IE的条件注释,顺手写下来备忘. HTML中的IE条件注释 IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解. ...
- 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约
智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...
- test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下
test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下 Maven的标准工程结构 Maven的标准工程结构如下: |-- pom.xml(maven的核心配置文件 ...
- md语法之行内代码和代码片续集
md语法之行内代码和代码片 一行之内嵌入一小段代码, 简称行内代码. 其方法为: 用撇号把代码围起来. 比如: import numpy as ny就可以了. 代码片的方法: 三个连续的撇号+pyth ...
- md语法之行内代码和代码片
md语法之行内代码和代码片 比如说要在行内写上一句或者半句代码(代码的意思就是某种脚本语言), 用撇号围起来就可以了. 比如: import pandas as pd 写代码片(单独的一块脚本语言)的 ...
随机推荐
- 后浪搞的在线版 Windows 12「GitHub 热点速览」
本周比较火的莫过于 3 位初中生开源的 Windows 12 网页版,虽然项目完成度不如在线版的 Windows 11,但是不妨一看.除了后生可畏的 win12 之外,开源不到一周的 open-int ...
- C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题
记录开发简单职工管理系统遇到的一些问题,黑马教程 https://www.bilibili.com/video/BV1et411b73Z P147 ~ P166 头文件与源文件 头文件只声明,源文件来 ...
- Solution -「洛谷 P1852」跳跳棋
Description Link. 在一个数轴上给你三个点,移动方法是彼此为中点进行跳跃,不能同时越过两颗棋子. 给出初始状态和目标状态,问能否从初始状态跳到目标状态.若能,输出最少步数. 棋子之间互 ...
- Solution Set -「CF 1486」
「CF 1486A」Shifting Stacks Link. 考虑最少需要操作多少次后判断. #include<map> #include<cstdio> using nam ...
- MySQL实战实战系列 04 深入浅出索引(下)
在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念. 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表 T 中,如果我执行 se ...
- .NET 数据库大数据 方案(插入、更新、删除、查询 、插入或更新)
1.功能介绍 (需要版本5.0.45) 海量数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数 ...
- Java多线程笔记全过程(一)
一.多线程最基础的基本概念 一个程序最少需要一个进程,而一个进程最少需要一个线程. 我们常说的高并发,也并不全是线程级别的并发,在很多开发语言中,比如PHP,很常见的都是进程级别的并发.但是在Java ...
- Go接口 - 构建可扩展Go应用
本文深入探讨了Go语言中接口的概念和实际应用场景.从基础知识如接口的定义和实现,到更复杂的实战应用如解耦与抽象.多态.错误处理.插件架构以及资源管理,文章通过丰富的代码示例和详细的解释,展示了Go接口 ...
- CSP-J 2022 游记
10.9 早上睡到 7:00. 上午继续学习 Vim,学习哈希表. 10.11 白天线段树,区间加从六参改成四参就过了 晚上模拟赛,感觉良好 10.16 膜你赛,std变量命名毒瘤. 想用 geogb ...
- 【XXE漏洞】原理及实践演示
一.原理 XML是用于传输和存储数据的一种格式,相当于一种信息传输工具,其中包含了XML声明,DTD文档类型定义.文档元素. XXE是xml外部实体注入漏洞,发生在应用程序解析XML输入时,没有禁止外 ...