使用magic-api开发时多人协作问题

前言

前面有讲过对于小型简易项目可以使用 magic-api 快速发布 http 接口实现功能,简单使用可参考 SpringBoot整合magic-api快速发布http接口 - 掘金 (juejin.cn), 这篇文章只是给出一个示例代码,实际对于数据库, redis 等操作都是可以通过 magic-api 完成,详细的功能可以参考 简介 | magic-api (ssssssss.org), 接下来这一篇主要是对多人使用 magic-api 协作开发的个人思考梳理

低代码平台多人开发协作的难点

低代码开发平台一般都是通过页面拖拽或者在页面编写部分代码通过平台生成元数据,和源码编写还是有很大区别的,重点是元数据合并有冲突不易解决,对于低代码开发平台多人协作问题有参考了如下文章

低代码多分支协同开发的建设与实践 - 掘金 (juejin.cn)

低代码实践 | CodeWave如何支持多人协作开发应用_低代码_网易数帆_InfoQ写作社区

这些都是比较大型的低代码开发平台解决多人协作问题的思路,总结起来基本是

  • 细化任务,减少冲突的概率
  • 项目的多版本管理(对于后端同学来说基本都是使用 git 了)
  • 任务合并,若有冲突则基于可视化界面解决冲突

对于大型低代码开发平台来说,任务合并后冲突解决还是比较麻烦的,但是 magic-api 这种后端代码开发平台来说多人协作就要简单很多了,下面使用不同分支来模拟多人协作场景看看是如何基于 git 来进行版本管理

magic-api 多人协作场景模拟

生产分支代码

如下图所示,目前是 master 分支,可以认为是生产环境的代码,此时在 application.properties 中配置的 magic-api 资源地址是 magic-api.resource.location=classpath:magic-api, 这是为了保证线上代码 magic-api 接口资源的不可编辑性, 目前 resource 目录下已经有了一些接口

两个开发者创建本地分支

dev1 分支创建

现在有第一个开发者基于该项目的 master 分支开发, 基于 master 分支创建 dev1 分支,如下图所示

dev2 分支创建

新加入一个开发者,同样的还是基于 master 分支创建 dev2

dev1分支开发接口

看一下 dev1 分支 magic-api 资源目录的变化

可以看到因为包不同,所以元数据生成的目录也不同,也就是说 dev1 分支和 master 分支其实并没有冲突

dev2分支开发接口

上面 dev1 分支是创建了新的目录,接口都是在新目录中,接下来 dev2 则将接口创建在原来的目录中 此时 magic-api 资源目录结构

合并 dev1 dev2master

接下来的合并其实除了 application.propertiesmagic-api.resource.location=D:/code/test-web/src/main/resources/magic-api 这部分有冲突外,其他的都不会有任务冲突,而这部分的冲突只要合并一次后续合并也不会有冲突

总结

使用 magic-api 开发多人协作和源码开发多人协作其实差别不大,git 操作流程原来的开发模式都是一样的,只需要注意一点,即多个尽量不要开发同一个接口,因为多人开发同一个接口时,magic-api 生成的元数据就会有冲突,其他情况下基本不会有冲突,因为不同接口元数据文件不同

相关推荐
一只大袋鼠31 分钟前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
※DX3906※1 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
cur1es2 小时前
【JVM类加载&双亲委派模型&垃圾回收机制】
java·jvm·gc·垃圾回收·类加载·双亲委派模型
Mr.朱鹏3 小时前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee
焦糖玛奇朵婷3 小时前
实测扭蛋机小程序:开发简单,互动有趣
java·大数据·程序人生·小程序·软件需求
Nan_Shu_6143 小时前
学习: 尚硅谷Java项目之小谷充电宝(3)
java·后端·学习
wzqllwy3 小时前
8 大经典排序算法(Java 实现):原理 + Demo + 核心分析
java·算法·排序算法
智能工业品检测-奇妙智能3 小时前
AIFlowy如何实现与现有Spring Boot项目的无缝集成?
java·spring boot·后端
從南走到北3 小时前
JAVA无人共享无人健身房物联网结合系统源码支持小程序+公众号+APP+H5
java·物联网·小程序
Nuopiane3 小时前
MyPal3(3)
java·开发语言