Java開發手冊之工程規約(一) 應用分層

2021-07-30 12:13:42 字數 1213 閱讀 5327

1.【推薦】圖中預設上層依賴於下層,箭頭關係表示可直接依賴,如:開放介面層可以依賴於web 層,也可以直接依賴於 service 層,依此類推:

-開放介面層:可直接封裝 service 介面暴露成 rpc 介面 ; 通過 web 封裝成 http 介面 ; 閘道器控

制層等。

-終端顯示層:各個端的模板渲染並執行顯示層。當前主要是 velocity 渲染, js 渲染, jsp 渲

染,移動端展示層等。

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

-service 層:相對具體的業務邏輯服務層。

-manager 層:通用業務處理層,它有如下特徵:

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

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

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

-dao 層:資料訪問層,與底層 mysql 、 oracle 、 hbase 進行資料互動。

-外部介面或第三方平台:包括其它部門 rpc 開放介面,基礎平台,其它公司的 http 介面。

【參考】 ( 分層異常處理規約 ) 在 dao 層,產生的異常型別有很多,無法用細粒度異常進行catch ,使用 catch(exception e) 方式,並 throw new daoexception(e) ,不需要列印日誌,因為日誌在 manager / service 層一定需要捕獲並打到日誌檔案中去,如果同台伺服器再打日誌,浪費效能和儲存。在 service 層出現異常時,必須記錄日誌資訊到磁碟,盡可能帶上引數資訊,相當於保護案發現場。如果 manager 層與 service 同機部署,日誌方式與 dao 層處理一致,如果是單獨部署,則採用與 service 一致的處理方式。 web 層絕不應該繼續往上拋異常,因為已經處於頂層,無繼續處理異常的方式,如果意識到這個異常將導致頁面無法正常渲染,那麼就應該直接跳轉到友好錯誤頁面,盡量加上友好的錯誤提示資訊。開放介面層要將異常處理成錯誤碼和錯誤資訊方式返回。

阿里巴巴開發手冊之索引規約

業務上具有唯一特性的字段,即使是組合字段,也必須建成唯一索引,不要以為唯一索引影響了insert速度,這個速度損耗可以忽略,但提高查詢 速度是明顯的 2.超過三個表禁止join,多表關聯查詢時,被關聯的字段需要有索引 即使是雙表也要注意表索引,sql效能 3varchar欄位建立索引時,必須指定索引...

Java開發手冊之異常日誌(二) 日誌規約

強制 應用中不可直接使用日誌系統 log 4 j logback 中的 api 而應依賴使用日誌框架slf 4 j 中的 api 使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。import org.slf4j.logger import org.slf4j.logge ctory p...

阿里開發手冊泰山版學習筆記二十 工程結構 應用分層

推薦 圖中預設上層依賴於下層,箭頭關係表示可直接依賴,如 開放介面層可以依賴於web 層,也可以直接依賴於service 層,依此類推 1 開放介面層 可直接封裝 service 方法暴露成 rpc 介面 通過 web 封裝成 http 介面 閘道器控制層等。2 終端顯示層 各個端的模板渲染並執行顯...