程序健壯性很是重要,要怎麼玩怎麼寫才能讓程序更加魯棒呢?我又這麼幾點小建議。前端
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.