程序健壮性很是重要,要怎么玩怎么写才能让程序更加鲁棒呢?我又这么几点小建议。前端
1、进行统一的业务处理响应数据库
根据蚂蚁金服开放平台的标准返回,一个 response 至少应当有4个返回值。运维
一、isSuccess:调用是否成功代理
二、data:返回的响应数据接口
三、errorCode:错误码自动化
四、errorMsg:错误信息ast
这就要求咱们的接口要有标准的统一的 response ,那怎么实现呢?请求
一、Spring 切面, JDK 动态代理,Cglib 动态代理等用代理类实现程序
二、匿名子类,使用一个公共的 Executor 来负责处理全部的请求。error
上面两种模式均可以实现标准的 response 的封装,那么具体要封装哪些东西呢?其实最主要的就是统一的 try catch,防止出现任何的 500 错误给到调用方。
------ 为何要在最外层去完成呢?------
由于 500 错误对于调用方来讲是致命并且是毫无价值的,不管调用方是前端仍是其余的业务系统
------ 设定统一的错误码 ------
例如:
参数错误:PARAMETER_ERROR
数据库错误: DATABASE_ERROR
外部系统错误:OUTER_SYSTEM_ERROR
若是有了上面的这些错误码以及错误信息,业务方至少能够告知用户究竟发生了什么事,也能够设定一些列的告警以及自动化运维的方式来处理这些错误。
2、参数检查
在进行真正的逻辑处理前,应当对入参进行一系列的校验,以保持后续业务处理逻辑的轻量,这也是 fast fail 思想的指导,有错误尽早结束处理。
具体是怎样的呢?咱们假设参数为 m.