日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

在做一個小型的管理系統的時候,有同學說他的功能都能實現,但是就是代碼比較凌亂,時間久了就不知道各個包放的啥,有什么功能。

我覺得不僅要有良好的寫代碼習慣,也要有好的分層意識。不能因為是初學者就忽視這個問題,因為好的習慣能給你帶很多方便,也為未來做項目打下基礎。習慣不好以后改過來挺麻煩的。

因此最近看了一些大牛的文章,做了一些整理:

首先說一下我們初學者學的MVC設計模式

通過這個模式就會更好的理解最新的結構分層思想

優秀代碼都是如何分層的呢?

MVC模式

阿里的編碼規范中約束的分層

一個好的分層,應該具備以下特點:

  • 方便后續代碼進行維護擴展
  • 分層效果需要讓整個團隊接受,要始終明白未來的項目不是你一個人完成的。在一開始我覺得我們就應該有這樣的思想準備。
  • 各層職責邊界清晰
優秀代碼都是如何分層的呢?

 

開放接口層:可直接封裝 Service 方法暴露成 RPC 接口;通過 Web 封裝成 http 接口;進行 網關安全控制、流量控制等。

終端顯示層:各個端的模板渲染并執行顯示的層。當前主要是 velocity 渲染,JS 渲染, JSP 渲染,移動端展示等。

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

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

Manager 層:通用業務處理層,它有如下特征:1. 對第三方平臺封裝的層,預處理返回結果及轉化異常信息;2. 對Service層通用能力的下沉,如緩存方案、中間件通用處理;3. 與DAO層交互,對多個DAO的組合復用。

DAO 層:數據訪問層,與底層 MySQL、Oracle、Hbase 進行數據交互。

阿里巴巴規約中的分層比較清晰簡單明了,但是描述得還是過于簡單了,以及service層和manager層有很多同學還是有點分不清楚之間的關系,就導致了很多項目中根本沒有Manager層的存在。


優化分層

Mannager:可復用邏輯層。這里的Mannager可以是單個服務的,比如我們的cache,mq等等,當然也可以是復合的,當你需要調用多個Mannager的時候,這個可以合為一個Mannager,比如邏輯上的連表查詢等。如果是httpMannager或rpcMannager需要在這一層做一些數據轉換

DAO:數據庫訪問層。主要負責“操作數據庫的某張表,映射到某個JAVA對象”,dao應該只允許自己的Service訪問,其他Service要訪問我的數據必須通過對應的Service

 注明

由于涉及到新的框架內容(rpc),還沒有學習到,因此這部分暫時不做整理,我會再抽個時間整理。

感興趣的可以查看這篇文章:

https://m.toutiaocdn.com/item/6727538635094114824/?App=news_article&timestamp=1566481699&req_id=201908222148190101520391973492596&group_id=6727538635094114824

分享到:
標簽:代碼
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定