1. 程式人生 > >(四)阿里巴巴JAVA程式設計規範之工程規約

(四)阿里巴巴JAVA程式設計規範之工程規約

開放介面層:可直接封裝Service介面暴露成RPC介面;通過Web封裝成http介面;閘道器控制層等。終端顯示層:各個端的模板渲染並執行顯示層。當前主要是velocity渲染,JS渲染,JSP染,移動端展示層等。

·Web層:主要是對訪問控制進行轉發,各類基本引數校驗,或者不復用的業務簡單處理等。

·Service層:相對具體的業務邏輯服務層。

·Manager層:通用業務處理層,它有如下特徵:

1對第三方平臺封裝的層,預處理返回結果及轉化異常資訊;

2Service層通用能力的下沉,如快取方案、中介軟體通用處理;

3DAO層互動,對DAO的業務通用能力的封裝。

·DAO層:資料訪問層,與底層

MysqlOracleHbaseOB進行資料互動。

·外部介面或第三方平臺:包括其它部門RPC開放介面,基礎平臺,其它公司的HTTP介面。

2. 【參考】(分層異常處理規約)在DAO層,產生的異常型別有很多,無法用細粒度異常進行catch,使用catch(Exception e)方式,並throw new DaoException(e),不需要   列印日誌,因為日誌在Manager/Service層一定需要捕獲並打到日誌檔案中去,如果同臺伺服器再打日誌,浪費效能和儲存。在Service層出現異常時,必須記錄日誌資訊到磁碟,儘可能帶上引數資訊,相當於保護案發現場。如果Manager層與

Service同機部署,日誌方式與DAO層處理一致,如果是單獨部署,則採用與Service一致的處理方式。Web層絕不應該繼續往上拋異常,因為已經處於頂層,無繼續處理異常的方式,如果意識到這個異常將導致頁面無法正常渲染,那麼就應該直接跳轉到友好錯誤頁面,儘量加上友好的錯誤提示資訊。開放介面層要將異常處理成錯誤碼和錯誤資訊方式返回。

3. 【參考】分層領域模型規約:

·DOData Object):與資料庫表結構一一對應,通過DAO層向上傳輸資料來源物件。

·DTOData Transfer Object):資料傳輸物件,ServiceManager向外傳輸的物件。

·BOBusiness Object

):業務物件。可以由Service層輸出的封裝業務邏輯的物件。

·QUERY:資料查詢物件,各層接收上層的查詢請求。注:超過2個引數的查詢封裝,禁止使Map類來傳輸。

·VOView Object):顯示層物件,通常是Web向模板渲染引擎層傳輸的物件。