學習 nacos 代碼編程-1

今天開始研讀nacos 代碼,學習一下。

讀到  com.alibaba.nacos.client.config.http.HttpAgent 時發現一個特點,該接口有兩個實現類。

MetricsHttpAgent:

度量類,實現了父類的方法,重新調用當前方法。在掉用當前方法前做一些異常處理及參數獲取

@Override
    public HttpResult httpGet(String path, List<String> headers, List<String> paramValues, String encoding, long readTimeoutMs) throws IOException {
        Histogram.Timer timer = MetricsMonitor.getConfigRequestMonitor("GET", path, "NA");
        HttpResult result = null;
        try {
            result = httpAgent.httpGet(path, headers, paramValues, encoding, readTimeoutMs);
        } catch (IOException e) {
            throw e;
        } finally {
            timer.observeDuration();
            timer.close();
        }

        return result;
    }

ServerHttpAgent:

實際的業務邏輯的實現類,類中同樣出現異常時同樣會進行捕獲,但對於出現業務邏輯不符合預期時會直接拋出異常

我的的感受:

最近在寫公司代碼的時候有點難受,針對於微服務的方法調用的時候,會對返回的實體進行封裝,組成規範的返回對象實體。

但是服務調用本身從封裝實體再去獲取實際想要的實體,中間多了一層邏輯,我個人覺得很變扭。

跟同事溝通後,贊同當前做法,對查詢出的實體進行封裝成對邊的標準實體  即  有返回code,result,success 一些列值的實體

 

針對於服務調用,對方更喜歡你返回結果帶有編碼,我只需要根據你返回的編碼進行判斷即可。

同樣在  服務調用的API實現類中 我們需要進行異常捕獲  保證返回給業務方式一個實體對象,不是一對亂七八糟的異常編碼。

這裏就涉及到了業務異常的拋出,我相信很多人都跟我一樣喜歡直接拋出業務異常,而不是封裝一個對象。然後在最外層直接進行異常的捕獲,代碼簡潔明瞭,很舒適。

針對於當前nacos的編碼規範:

總結,服務的調用的實現方法必須異常捕獲,保證使用者的用戶體驗,針對不同的業務異常進行捕獲返回對象。

 

 

 

發佈了11 篇原創文章 · 獲贊 3 · 訪問量 462
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章