【开源】后端模块化轻框架,让SpringBoot开发效率激增,低代码内核,所有代码只写1次

大家好,欢迎来到停止重构的频道。

本期介绍我们的新后端框架:Once2

一个能让所有后端代码只写1次,更看重项目过程、工程质量的框架。

我们按这样的顺序展开介绍

1、模块、业务分离

2、Once只是一种规则

3、工作原理

4、设计愿景

模块、业务分离

首先介绍最主要的模块、业务分离。

从宏观上讲,后端应用程序是多个请求接口的集合,而对于单个接口而言是执行多个步骤

基于这样的观点,Once将代码分离了两层:模块代码、业务代码

模块代码是需要写Java代码实现具体功能的。只需要关心通用功能的实现,例如:文件上传、参数检查、数据库操作等。

业务代码指的是具体的后端接口。只需要关心业务功能的实现步骤,也就是对模块使用顺序进行编排,而不需要关心具体功能如何实现。

模块部分,每个模块完全独立,且具有统一的使用方式。

模块可以单独运行调试,复制粘贴文件夹即可无条件复用或替换升级。

Once也提供了模块库,可以一键下载更新模块。例如:检查参数、上传文件、数据库操作等模块。

后续也会持续扩展模块池。

这里顺便提一下,大家比较关心的数据库模块。

数据库模块不需要配置数据表entity,它会在工程启动时自动获取生成。数据操作上也更加简洁。

业务部分,由于每个后端接口只是对模块使用顺序进行编排。

所以这部分不需要写代码,只需要通过Json配置即可。这样能免去冗余代码的编写。

工程运行时,Json配置会自动生成真正的Java代码。

Once只是一种规则

Once只是一种规,则实质上是一个SpringBoot3工程。

发生的错误,都可以以SpringBoot工程的视角进行排查。

Once只是在SpringBoot工程的基础上做了2件事情。

一是规整化代码结构,将代码分离为业务代码、模块代码、通用代码。规范了模块调用、日志、错误码等等。

二是加入代码生成器Christmas,用于生成拼接代码。

例如,将业务代码从Json配置生成为真正的Java代码,从模块库下载模块,更新框架等。

工作原理

接下来是工作原理,为了实现以上模块代码、业务代码分离,Once架构加入了数据

池数据池可以看作是一个接口中的全局变量,所有模块都可以对其进行添加、删除数据。

​具体工作原理为:

在接口逻辑开始时,会将请求参数及其他重要对象存放在数据池中。

调用模块时,需要设置模块参数,以及将数据池传递给模块。

模块按模块参数执行任务时,可从数据池获取数据或对数据池数据进行修改。

模块执行任务完毕后,检查模块是否报错,不报错继续下一步,否则中断逻辑返回客户端。

这里的报错返回只是默认行为。可以添加逻辑选择器以实现更加复杂的逻辑,如发生错误重试、发生错误启动异常逻辑等。

接口返回时,自动将数据池中用于记录返回数据的部分转换为Json字符串,并返回客户端。

设计愿景

Once与其他技术框架的侧重点是不一样的。

我们更关心项目过程、工程质量,我们是按一个团队的视角进行设计的。主要是针对中大型项目,更看重整体成本、运维/迭代难度。

Once可以缩减代码、提升代码复用度,但这并不是Once的唯一目的。

我们更希望通过模块积累降低新项目成本,希望团队能更合理地分,工人员流动不会对项目造成影响。

模块代码开发是需要有一定后端开发经验的程序员才能胜任的,我们希望这些工作能独立开来

一方面模块可以单独调试开发,且无条件复用在别的项目。

另一方面由于项目进度等原因,某些模块可能是临时开发或者存在缺陷的,以后可以单独替换这些模块。

业务代码由于使用Json配置替代了编码,且无需了解实际模块的运行原理。

所以业务代码可以交由经验尚浅或者其他领域的程序员完成。

这样做除了能加快开发效率,更重要的是可以约束业务代码编写,让业务逻辑更加清晰明了。避免每次排查BUG时都需要先花很长时间理解逻辑,然后再逐一排查。

总结

最后,Once2已经放在了GitHub、Gitee。

我们也提供了完整的使用文档。

感兴趣的小伙伴可以尝试一下,点个Star就更好了。

以后,我们会不断推出新模块丰富模块池。

当模块池和用户量到达一定规模后,将继续推出图形编辑界面,进一步推动低代码平台。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值