前后端协作新模式的实践
来源:互联网 发布:js unicode 编辑:程序博客网 时间:2024/06/03 18:38
一、前后端怎样协作?
后端:
(1)开发阶段,接口频繁变更,每次文档都要更新?好烦。。。
(2)接口文档格式五花八门,完全统一准确无误?好难。。
(3)维护文件费时费力还不算产出,毫无动力。。
前端:
(1)接口文档几乎没见过更新
(2)找接口得直接找对口人
于是乎… QQ成为后端联调的主要工具。
问题:
(1)知识不能积淀下来!!!最终接口文档不能从天上掉下来!!!
(2)沟通难免有歧义,调用方式、参数易用错,bug频发!!!
(3)后人维护困难!!!
如何解决?
(1)根据代码生成接口文档!Springfox + Swaggger UI
(2)引入成本:只在现有业务Controller上加一点注解!!!
(3)怎么实现:且听下回分解
二、 Controller怎么重构?
现在的Controller都做了什么?
(1)打印入参log
(2)对参数长度、格式进行校验,若不过则给FE返回参数错误提示
(3)对参数进行业务校验,若通不过则给FE返回业务校验错误提示
(4)调用业务Service,获得返回值
(5)若Service异常,则记录log并给FE返回异常提示
(6)打印出参log
(7)给FE返回结果JSON数据
但是存在问题:
(1)面面俱到,但职责不单一,Controller里业务无关的代码太多。
(2)单靠约定,并不是所有人都可以如此规范、面面俱到。
(3)对参数长度、格式的校验太过繁琐。
(4)通过返回值返回Service中的业务校验结果太复杂
(5)千篇一律的参数打印、异常处理、FE数据返回
(6)不一致的log输出格式,后期自动化分析和自动报警困难
重构:Controller单个方法代码行数减少50%
(1)自动打印Controller的入参和出参,统一规范,业务Controller里不用再手写log了
(2)使用JSR303对参数进行预校验,不用手写代码判断字符串长度、空串等了。
(3)业务Controller里不再需要对JSR303校验结果和业务校验结果进行判断和返回FE了。
(4)统一处理参数异常、业务异常和系统异常,自动打印异常栈,并返回FE异常提示
(5)统一给FE返回数据,业务Controller的方法返回VO即可,不用手动调用responseJsonp
(6)业务Controller里依旧可以打log,处理异常,无影响。
三、 模式实践
- 前后端协作新模式的实践
- Swagger下的前后端协作
- 目前前后端协作,遇到的问题及思考
- 前后端分离的一点实践
- 前后端分离的思考与实践
- 前后端分离实践
- 前后端分离的思考与实践----基于NodeJS的前后端分离
- WEB前后端实践记录
- 前后端分离开发实践
- 实践中的前后端分离
- 前后端分离的思考与实践(转载)
- 前后端分离的思考与实践(1)
- 前后端分离的思考与实践(2)
- 前后端分离的思考与实践(一)
- 前后端分离的思考与实践(链接)
- 前后端分离的思考与实践(一)
- (精)前后端分离的思考与实践(一)
- (精)前后端分离的思考与实践(二)
- J2EE中使用jstl报http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jarfiles错
- R_处理我的一个txt文件的一点心得
- jdbc
- iOS Technology Overview
- STL专题总结!
- 前后端协作新模式的实践
- 基于c语言,严蔚敏版数据结构的线性表节本操作
- CNN中感受野的计算
- SQLServer去除子查询中的order by
- Json(二)之 java 操作 Json
- JavaScript数组和对象的复制
- Project Euler Problem 13 Large sum
- C++静态成员函数
- 在XIB中进行CornerRadius设置