后端项目模块分层设计与业务开发

        大家好我是小彭,今天和大家聊一聊关于后端项目模块分层设计,好的项目模块分层能使开发更规范,无论是新人还是老人都能更轻松的看懂业务代码、修复相关bug,进而提交团队开发效率,糟糕的分层设计和不规范的开发,会使项目越来越臃肿,难以维护。本文将分别介绍PHP和Java语言框架常见的模块分层,再来聊聊业务开发需要注意的地方。

一、 后端项目

1.1 PHP项目常见模块

1.1.1 调用流程

常见的调用流程为以下两种:

1.Controller-》Model-》

2.Controller-》Service-》Model-》

1.2 Java项目常见模块

1.2.1 调用流程:

        控制器-》服务层接口-》服务层接口实现类(业务逻辑写在这里)-》Mapper接口(定义增删改查)-》Mapper接口实现类(具体的SQL)-》返回类型为指定数据传输对象DTO(实体,定义的数据表字段,定义多少,返回多少字段数据)

比如guns开源项目:

二、现有项目痛点

1.代码写在一个控制器里、一个方法中完成所有逻辑

2.业务逻辑代码没有复用

2.没有统一的参数验证

2.功能没有按照模块拆分、没有分层

3.数据库操作在各个控制器层

4.部分表没有对应的模型文件

三、现有项目痛点案例

3.1 公司项目

3.1.2 用户积分功能

积分异常bug场景

假如现在有一个积分数据异常的bug需要我来修复,恰巧我不是负责该功能的人,我应该怎么从项目中快速找到该bug?

第一步:找到请假数据表-》user_integral

第二步:在Model中找UserIntegral文件,(但是找不到)

第三步:全局搜索user_integral表,并且找添加数据的操作

第四步:修复bug,复制修复bug的代码到粘贴到其他方法中

坏处和痛点

1.数据表没有模型,新人或者不是负责该功能开发的人,不容易找到对应的代码段

2.数据表增删改查操作分布在控制器中,需要走完整个流程才能找到数据添加或者修改的地方

3.核心业务功能没有复用,在Admin和Api模块后续会复制出大量相同的代码

四、优化方案

4.1 优化前提

1.符合PHP快速开发的特点,不必像Java一样那么多调用层次

2.以业务需求开发为主,易于开发人员接受和编写代码

3.不能为了优化而过多设计,反倒会起反作用

4.2 优化方案

4.2.1 优化建议

1.【代码写在一个控制器里、一个方法中完成所有逻辑】=》根据业务将代码写到合适到地方,如业务逻辑写在service中

2.【业务逻辑代码没有复用】=》将业务逻辑写到service服务层

2.【没有统一的参数验证】=》增加validete目录,参数验证统一放在该目录下

3.【功能没有按照模块拆分、没有目录分层】=》拆分功能、增加相应的目录

4.【数据库操作在各个控制器层】=》数据库操作放在和数据表命名一致的模型中

5.【部分表没有对应的模型文件】=》根据数据表增加模型文件

4.2.2 调用流程

validate参数验证

controller控制器=》service服务层=》 util 工具目录

model模型层、增删改查

大致流程图

五、结束语

        不同的项目有不同的模块分层设计,也要根据实际情况进行调整,但好的开发规范一定要早点落实。关于项目模块设计就聊到这里,我们下次再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值