CSDN话题挑战赛第2期
参赛话题:Java技术分享

后端开发-通用说明及开发规范

1 什么是前后端开发

项目基于前后端分离的架构进行开发,前后端分离架构总体上包括前端和服务端,通常是多人协作开发

  • 对于后端java工程师:

    把精力放在设计模式,spring+springmvc+mybatis,springboot,linux,redis,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构,弹性计算架构,微服务架构,java性能优化,以及相关的项目管理等等。

  • 对于前端工程师:

    把精力放在html5,css3,vuejs,webpack,nodejs,Google V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。

1.1前后端分离开发流程

在这里插入图片描述

1.2 前后端开发流程

1,需求分析

梳理用户的需求,分析业务流程

2,接口定义

根据需求分析定义接口,定义出接口文档

3,服务端和前端并行开发

服务端:依据接口文档进行服务端接口开发

前端:根据用户需求开发操作界面,并根据接口文档制作mock数据,进行测试

4,前后端集成接口联调

最终前端调用服务端接口完成业务

2 后端接口开发规范

2.1 开发原则

  • 自顶向下的设计原则:功能应该从表现层分析再到控制层、服务层、持久层逐层设计

  • 自底向上的开发原则:上层需调用下层,因此开发应从底层向上层逐层开发

    项目中开发的层次次序参考: DB->中间件->持久层->服务层->控制层

  • 单一职责的开发原则:类或者方法提供的功能应该单一明确,特别越底层越应单一职责,以便维护

    项目中Mapper方法必须功能单一,参数明确,拒绝两种以上的持久逻辑使用同一个Mapper方法

  • 依赖倒置的开发原则:上层依赖下层,是依赖下层接口,并不是依赖下层的实现

    项目中每层都是通过接口调用Controller->Service->Mapper

2.2 开发步骤

  • 明确类定义:明确哪些是重用类,哪些是需要新增的类
  • 明确主键规则:确认操作表的ID生成规则,是自增主键,还是分布式唯一主键
  • Mapper实现:插入时是否要插入主键id
  • Service实现:可用通过时序图帮助我们梳理实现逻辑
  • Controller实现:简单的Service层调用
  • 单元测试或接口测试

2.3 接口版本规范说明

随着业务的复杂,同一个接口可能出现多个版本,为了方便后期切换和AB测试,需要定义接口的版本号

  • 在某一个微服务下访问controller的时候在包名下加一个版本号,如下

    com.nanmu.tiger.controller.v1
    
  • 在访问具体的接口方法的url映射的时候也应该加上版本说明,如下:

    @RequestMapping("/api/v1/tiger")
    

3 接口通用请求和响应

统一结果封装解决方案

异常体系介绍及SpringBoot全局异常处理解决方案

更多推荐