關於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.

相關文章
相關標籤/搜索