关于Java健壮性的一些思考与实践!

程序健壮性很是重要,要怎么玩怎么写才能让程序更加鲁棒呢?我又这么几点小建议。前端

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.

相关文章
相关标签/搜索