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


1 前后端分离开发

1.1网站后台的部分采用前后端分离方式

在这里插入图片描述

以前的JavaWeb项目大多数都是java程序员又当爹又当妈,又搞前端,又搞后端。随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。

对于后端java工程师

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

对于前端工程师

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

1.2企业开发流程

0 项目(产品)经理。UI 原型图 需求文档:登录页面 商品详情页

1项目经理让美工做出原型页面

2项目经理 拉着后端开发 前端开发工程师 讨论

3定义业务接口  post /user/add {}           **查看资料中的接口文档**

4前后端分离开发

5前后端联调

6测试环境发布,测试部门测试

7预发布环境(业务部门老大 、技术部门老大)

8运维 正式上线

9线上bug:快速修复,当天晚上11-12 部署上线。程序员回不了家原因。

2 后端接口开发规范

2.1开发原则

  • 自顶向下的设计原则:功能应该从表现层分析再到控制层、服务层、持久层逐层设计
  • 自底向上的开发原则:上层需调用下层,因此开发应从底层向上层逐层开发项目中开发的层次次序参考DB->中间件->持久层->服务层->控制层
  • 单一职责的开发原则:类或者方法提供的功能应该单一明确,特别越底层越应单一职责,以便维护 项目中Mapper方法必须功能单一,参数明确,拒绝两种以上的持久逻辑使用同一个Mapper方法
  • 依赖倒置的开发原则:上层依赖下层,是依赖下层接口,并不是依赖下层的实现项目中每层都是通过接口调用Controller->Service->Mapper

2.2 开发步骤

  • 明确类定义:明确哪些是重用类,哪些是需要新增的类。
  • 明确主键规则:确认操作表的ID生成规则,是Mycat主键,还是Zk主键
  • ControllerApi定义
  • Mapper实现:查、改、删时注意是否使用mycat注解确认DN,插入时是否要插入主键id
  • Service实现:可用通过时序图帮助我们梳理实现逻辑
  • Controller实现:简单的Service层调用
  • 单元测试或接口测试

2.3 接口版本规范说明

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

  • 在某一个微服务下访问controller的时候在包名下加一个版本号,如下
com.oldlu.article.controller.v1
  • 在访问具体的接口方法的url映射的时候也应该加上版本说明,如下:
@RequestMapping("/api/v1/article")

2.4 接口通用规范

ID混淆请求和响应的连续增长ID需要经过混淆加密
字符编码请求和响应的内容字符集为UTF-8
支持多格式响应结果支持JSON和XML,可通过Header Accept设置
URL格式Url为全小写字符,多个单词用下划线分隔
token请求头中存放当前用户的请求token(JWT格式)
t请求头中存放当前请求的时间,用于基本的请求时效判断
md5请求头中存放当前请求的参数验签字符串(查询串排序MD5加密)
响应格式响应格式只接受ResponseResult,code码需定义在AppHttpCodeEnum
posted @ 2021-02-16 13:17  赵广陆  阅读(222)  评论(0编辑  收藏  举报