自研后端框架Once

希望后端所有的代码只写一次,而无需让后端团队的人不断重复别人编写过的代码。

1. Once框架简介

Once框架实际上就是Springboot工程,Once框架只是在其基础上规整了工程结构和增加了代码生成器。让后端开发人员通过配置接口流程就可以完成一个接口的开发。

2. Once框架的设计思想与工作原理

关于Once框架的设计思想要从一段经历讲起。之前我们参与过一个比较奇怪的项目,在短短3个月之间,后端基础框架换了3次。从SpringMVC换到SpringBoot最后换到微服务。虽然都是java框架,理论上不会产生很大的工作量,但是实际上换框架的工作量基本等于重写一遍代码。而将一份代码重写三遍期间,我们找到了一种可以让所有后端代码只写一次的方法。这种方法也就是Once框架的设计核心。

从宏观上讲,后端应用程序就是多个接口的集合。而对于单个接口而言,是多个步骤的集合。从这样的认知出发,Once框架把后端代码分离成了两层:模块代码和业务代码

模块代码指的是单个步骤的功能代码(抽离成通用类)

业务代码指的是单个接口调用模块代码的步骤。

后端代码分离了这两层后,接口的处理过程就好像是工业生产线一样。完成了一个步骤会继续执行下一个步骤,直到完成或错误退出。这样的做法并不算新奇,很多团队都是这样做的,这样的做法仍然降低不了多少人力成本 。因为后端开发的大部分工作其实是在于业务代码的编辑上。开发人员不得不对每个模块类进行传参和返回值进行处理。

Once框架的解决方法是加入数据池,允许模块代码直接对这个数据池获取或增加数据。

这样就免去了处理模块返回值的麻烦工作。而这样数据池就好比流水线生成的产品,通过一个个步骤的加工。最终变成成品返回请求端。这样业务代码会得到最后的简化与规整。业务代码只需要开发人员设置处理流程以及每个步骤的参数即可。

最后Once框架加入了代码生成器,将重复的业务代码交给代码生成器生成。

使用Once框架开发编写接口时,只需要编写Json文件就可以完成一个接口的开发。

3. 业务代码开发

业务代码开发实际上就是编写json文件。编写一个接口等于指定步骤流程并设置好么一个步骤的参数。编写完成后,并通过代码生成器即可生成对应的Java代码(Controller、Service函数),这样可以极度缩减代码编写的工作量。也能节省代码调试等一系列不必要的时间。这样做的好处不仅节省了开发成本,也保证了工程的可维护性。因为不会出现乱七八遭的代码,每个接口的流程和参数是十分明确的。所以开发人员可以快速理解别人写的接口。甚至编写业务代码的开发人员可以是经验较低的实习生。(因为业务代码无非就是流程和参数,至于实际的代码,如数据库操作、session等已经被模块代码写好)。

当然这种方式也曾经被一些工程师质疑,这种单一流程化的步骤,很难实现一些复杂的逻辑。但是在实际项目当中,真正拥有复杂逻辑的接口只有很小一部分。大部分度咋逻辑是设计造成的。其实无需把批量更新和单个更新合并成一个接口。整合夸表数据的话,可以使用数据库视图,更新失败数据回滚的话,可以使用数据库事务。而由于Once框架其实只是一种规则,其工程其实就是一个SpringBoot工程,如果出现复杂逻辑是可以自由编写代码的。

但一般不推荐自由编写业务代码,即使是复杂的逻辑,也是可以通过编写特殊的模块代码完成。

4. 模块代码开发

模块代码是一个步骤的功能代码,实际上就是一个类,一个模块类可以通过命令快速创建代码骨架。然后在里面编写Java代码即可。至于数据池、错误码、配置项、第三方jar包引用、日志记录等。

由于业务调用模块的代码模版是相同的,所以如果发现一个模块写的不好或者性能不好。可以直接对模块进行重构,而无需担心业务代码需要重新编写。不需要的模块也可以通过删除文件夹删除。不会出现引用多余第三方Jar包的现象。另外我们提供了官方模块库,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值