精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

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

開發 架構
總的來說業務分層對于代碼規范是比較重要,決定著以后的代碼是否可復用,是否職責清晰,邊界清晰。當然這種分層其實見仁見智, 團隊中的所有人的分層習慣也不同,所以很難權衡出一個標準的準則,總的來說只要滿足職責邏輯清晰,后續維護容易,就是好的分層。

1、背景

說起應用分層,大部分人都會認為這個不是很簡單嘛 就controller,service, mapper三層。看起來簡單,很多人其實并沒有把他們職責劃分開,在很多代碼中,controller做的邏輯比service還多,service往往當成透傳了,這其實是很多人開發代碼都沒有注意到的地方,反正功能也能用,至于放哪無所謂唄。這樣往往造成后面代碼無法復用,層級關系混亂,對后續代碼的維護非常麻煩。

的確在這些人眼中分層只是一個形式,前輩們的代碼這么寫的,其他項目代碼這么寫的,那么我也這么跟著寫。但是在真正的團隊開發中每個人的習慣都不同,寫出來的代碼必然帶著自己的標簽,有的人習慣controller寫大量的業務邏輯,有的人習慣在service中之間調用遠程服務,這樣就導致了每個人的開發代碼風格完全不同,后續其他人修改的時候,一看,我靠這個人寫的代碼和我平常的習慣完全不同,修改的時候到底是按著自己以前的習慣改,還是跟著前輩們走,這又是個艱難的選擇,選擇一旦有偏差,你的后輩又維護你的代碼的時候,恐怕就要罵人了。

所以一個好的應用分層需要具備以下幾點:

  • 方便后續代碼進行維護擴展;
  • 分層的效果需要讓整個團隊都接受;
  • 各個層職責邊界清晰。

2、如何進行分層

2.1、阿里規范

在阿里的編碼規范中約束的分層如下:

圖片

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

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

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

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

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

  • 對第三方平臺封裝的層,預處理返回結果及轉化異常信息;
  • 對Service層通用能力的下沉,如緩存方案、中間件通用處理;
  • 與DAO層交互,對多個DAO的組合復用。

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

阿里巴巴規約中的分層比較清晰簡單明了,但是描述得還是過于簡單了,以及service層和manager層有很多同學還是有點分不清楚之間的關系,就導致了很多項目中根本沒有Manager層的存在。下面介紹一下具體業務中應該如何實現分層。

2.2、優化分層

從我們的業務開發中總結了一個較為的理想模型,這里要先說明一下由于我們的rpc框架選用的是thrift可能會比其他的一些rpc框架例如dubbo會多出一層,作用和controller層類似:

圖片

最上層controller和TService是阿里分層規范里面的第一層:輕業務邏輯,參數校驗,異常兜底。通常這種接口可以輕易更換接口類型,所以業務邏輯必須要輕,甚至不做具體邏輯。

Service:業務層,復用性較低,這里推薦每一個controller方法都得對應一個service,不要把業務編排放在controller中去做,為什么呢?如果我們把業務編排放在controller層去做的話,如果以后我們要接入thrift,我們這里又需要把業務編排在做一次,這樣會導致我們每接入一個入口層這個代碼都得重新復制一份如下圖所示:

圖片

這樣大量的重復工作必定會導致我們開發效率下降,所以我們需要把業務編排邏輯都得放進service中去做:

圖片

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

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

3、分層領域模型的轉換

在阿里巴巴編碼規約中列舉了下面幾個領域模型規約:

  • DO(Data Object):與數據庫表結構一一對應,通過DAO層向上傳輸數據源對象。
  • DTO(Data Transfer Object):數據傳輸對象,Service或Manager向外傳輸的對象。
  • BO(Business Object):業務對象。由Service層輸出的封裝業務邏輯的對象。
  • AO(Application Object):應用對象。在Web層與Service層之間抽象的復用對象模型,極為貼近展示層,復用度不高。
  • VO(View Object):顯示層對象,通常是Web向模板渲染引擎層傳輸的對象。

Query:數據查詢對象,各層接收上層的查詢請求。注意超過2個參數的查詢封裝,禁止使用Map類來傳輸。

圖片

每一個層基本都自己對應的領域模型,這樣就導致了有些人過于追求每一層都是用自己的領域模型,這樣就導致了一個對象可能會出現3次甚至4次轉換在一次請求中,當返回的時候同樣也會出現3-4次轉換,這樣有可能一次完整的請求-返回會出現很多次對象轉換。如果在開發中真的按照這么來,恐怕就別寫其他的了,一天就光寫這個重復無用的邏輯算了吧。

所以我們得采取一個折中的方案:

1、允許Service/Manager可以操作數據領域模型,對于這個層級來說,本來自己做的工作也是做的是業務邏輯處理和數據組裝。

2、Controller/TService層的領域模型不允許傳入DAO層,這樣就不符合職責劃分了。

3、同理,不允許DAO層的數據傳入到Controller/TService。

圖片

4、總結

總的來說業務分層對于代碼規范是比較重要,決定著以后的代碼是否可復用,是否職責清晰,邊界清晰。

當然這種分層其實見仁見智, 團隊中的所有人的分層習慣也不同,所以很難權衡出一個標準的準則,總的來說只要滿足職責邏輯清晰,后續維護容易,就是好的分層。

最后,如果你的團隊有更好的分層,或者上面所描述的有什么錯誤的地方還請留言指正一下。

責任編輯:武曉燕 來源: Java后端面試官
相關推薦

2021-03-24 09:23:45

代碼阿里應用分層

2020-01-07 08:31:52

代碼分層Web

2020-03-09 14:10:48

代碼開發工具

2024-06-13 15:26:23

2023-03-27 15:05:10

Python技巧

2015-08-31 10:14:30

程序員處理代碼糟糕代碼

2015-09-01 11:20:58

程序員糟糕代碼

2018-05-10 15:06:43

Java Web分層實踐

2014-09-12 10:38:01

程序員代碼

2014-07-29 13:55:10

程序員代碼

2017-10-22 16:16:03

程序員編程代碼

2017-11-08 13:31:34

分層架構代碼DDD

2015-08-25 08:55:14

優秀代碼基因

2015-06-17 14:24:48

優秀程序員整潔代碼

2017-10-09 12:05:57

優秀的代碼代碼量糟糕的代碼

2015-08-18 14:00:55

容器DockerDevOps

2011-09-01 15:01:38

網頁設計

2021-01-07 08:57:14

MySQL數據庫索引

2020-05-25 11:14:59

代碼程序開發

2014-03-25 10:35:35

程序員代碼調試
點贊
收藏

51CTO技術棧公眾號

国产一级免费av| 高潮一区二区三区| 欧美日韩国产中文字幕在线| 久久亚洲风情| 久久九九亚洲综合| 玖草视频在线观看| 日韩三区四区| 精品久久久在线观看| 亚洲国产一区二区精品视频| 精品久久久免费视频| 久久午夜电影| 欧美激情国产高清| 欧美午夜激情影院| 成人知道污网站| 欧美网站一区二区| 国产手机免费视频| 最新97超碰在线| 成人免费视频视频在线观看免费| 国产精品激情自拍| 国产无码精品一区二区| 日韩欧美视频在线播放| 亚洲国产精品人久久电影| 自拍偷拍一区二区三区四区| 国产盗摄——sm在线视频| 亚洲欧美自拍偷拍色图| 青青成人在线| 人妻精品无码一区二区| 韩国三级电影一区二区| 国产精品草莓在线免费观看| 国产精品1000| 中文字幕一区二区三区乱码图片| 亚洲欧美在线第一页| 亚洲少妇中文字幕| 在线欧美激情| 欧美日韩你懂得| 蜜臀av午夜一区二区三区| 678在线观看视频| 亚洲精品视频在线看| 亚洲高清视频一区| 欧美xxx.com| 97精品电影院| 国产精品日韩欧美一区二区三区 | 在线播放欧美女士性生活| 欧洲熟妇精品视频| jizz内谢中国亚洲jizz| 天天综合色天天综合色h| 日韩欧美精品免费| 高清电影在线观看免费| 亚洲综合一区在线| 男人c女人视频| 亚洲色图美国十次| 一区二区三区欧美在线观看| wwwjizzjizzcom| 国产suv精品一区二区68| 国产一区二区三区站长工具| 亚洲人a成www在线影院| 精品国产av无码| 禁断一区二区三区在线| 亚洲视频国产视频| 欧美人与性囗牲恔配| 精品99在线| 中文字幕在线成人| 午夜剧场免费在线观看| 欧美在线二区| 欧美精品久久久久| 国产精品久久久免费视频| 性色一区二区三区| 国产精品久久久精品| 最新国产中文字幕| 狠狠色狠狠色综合| 99在线视频播放| 蜜桃91麻豆精品一二三区| 成人的网站免费观看| 久久99久久精品国产| 高清日韩av电影| 日韩毛片高清在线播放| 91大学生片黄在线观看| 999精品网| 日本高清不卡aⅴ免费网站| 在线免费观看视频黄| 电影中文字幕一区二区| 欧美精品一区男女天堂| 国产又黄又粗视频| 国产精品久久久乱弄| 欧美精品久久一区二区| 亚洲熟女综合色一区二区三区| 天堂精品中文字幕在线| 91在线高清视频| 午夜18视频在线观看| 久久精品一区二区三区四区| 国产手机视频在线观看| 55av亚洲| 欧美日韩成人高清| 婷婷五月精品中文字幕| av中文一区| 色综合视频网站| 男人天堂视频网| 国产a久久麻豆| 少妇精品久久久久久久久久| 亚洲色图美国十次| 欧亚洲嫩模精品一区三区| 久久久国产精品久久久| 欧美欧美黄在线二区| 欧美日韩爱爱视频| 加勒比在线一区| 成人性生交大合| 深夜福利成人| 国产福利电影在线播放| 777午夜精品免费视频| 在线免费观看黄色小视频| 女同性一区二区三区人了人一| 日韩美女毛茸茸| 成人毛片在线免费观看| 国产精品网曝门| 国产aaa一级片| 粉嫩的18在线观看极品精品| 日韩在线观看免费全集电视剧网站| 成年人免费看毛片| 国产一区二区三区免费看| 欧美一区三区二区在线观看| 波多野结衣在线观看| 91精品国产综合久久香蕉麻豆| 91中文字幕永久在线| 精品99视频| 99re在线观看| av网站网址在线观看| 欧美日韩国产影片| 亚洲一区二区三区日韩| 国产精品综合| 国产精品久久久久久久久久直播| 免费在线看黄| 欧美日韩国产精品成人| 国产精品成人无码免费| 久久亚洲国产精品一区二区| 久久99蜜桃综合影院免费观看| 日本天码aⅴ片在线电影网站| 制服丝袜亚洲精品中文字幕| av最新在线观看| 久草精品在线观看| 亚洲欧洲精品在线观看| 韩日精品一区| 在线成人一区二区| 亚洲av无码乱码国产精品fc2| 91免费观看视频| 欧美色图另类小说| 欧美精品密入口播放| 久久久久中文字幕| 四虎永久在线观看| 精品久久久久久久大神国产| 久久福利小视频| 另类激情亚洲| 色综合视频二区偷拍在线| 国产精品黄色片| 日韩性xxxx爱| 精品欧美在线观看| 亚洲福利视频一区二区| 久久人人妻人人人人妻性色av| 亚洲激情社区| 欧美日韩国产不卡在线看| 人人鲁人人莫人人爱精品| 在线观看精品国产视频| 国产一区二区在线不卡| 伊人一区二区三区| 中文字幕在线视频播放| 噜噜噜在线观看免费视频日韩| 日韩电影大全在线观看| 国产aⅴ精品一区二区四区| 欧美国产一区二区三区| 午夜视频在线播放| 在线亚洲精品福利网址导航| 三级黄色在线观看| 国产成人在线免费观看| 国产91在线免费| 日韩电影免费网址| 亚洲最大激情中文字幕| 888av在线视频| 中文字幕精品网| www日本在线| 色爱区综合激月婷婷| 婷婷社区五月天| hitomi一区二区三区精品| 午夜精品亚洲一区二区三区嫩草| 福利一区和二区| 久久久久久久久电影| 久青青在线观看视频国产| 777a∨成人精品桃花网| 日本一级片免费看| 国产精品美女久久久久aⅴ国产馆| 涩多多在线观看| 性娇小13――14欧美| 国产a级片免费看| 欧美巨大xxxx| 91精品国产高清久久久久久91裸体 | 中文字幕日韩专区| 韩国av电影在线观看| 欧美色区777第一页| 国产午夜精品无码一区二区| 中文字幕第一区二区| 久久免费精品国产| 老汉av免费一区二区三区 | 黄页网站在线| 中文字幕日韩在线视频| 天天色天天操天天射| 欧美精品色综合| 天堂网视频在线| 亚洲午夜激情网站| 日韩亚洲欧美中文字幕| 久久免费电影网| 折磨小男生性器羞耻的故事| 青青草一区二区三区| 国产视频九色蝌蚪| 亚洲精品国产偷自在线观看| 日韩精品欧美专区| 久久男人av| 99在线观看视频网站| 亚洲精品第一| 日韩免费观看高清| av资源在线播放| 九九热r在线视频精品| seseavlu视频在线| 亚洲欧美成人一区二区在线电影| 欧美一级淫片免费视频魅影视频| 欧美精品自拍偷拍| 在线观看视频二区| 在线影视一区二区三区| 国产剧情在线视频| 天天av天天翘天天综合网色鬼国产 | 久久免费大视频| 日韩一区免费观看| 国产精品免费99久久久| 蜜桃视频在线观看91| 极品一区美女高清| 国产精品久久久久久久久婷婷| 久久伊人精品| 91精品天堂| 欧美一区在线观看视频| 成人午夜一级二级三级| 亚洲精品777| 国产日韩欧美视频在线| 国产亚洲精彩久久| 国产精品欧美激情在线播放| 日本精品在线中文字幕| 国产精品免费网站| 精品欧美一区二区三区在线观看| 日产精品99久久久久久| 外国成人直播| 国产精品久久国产精品99gif| 97se综合| 国产精品一二三在线| 天堂综合在线播放| 成人免费福利在线| 激情不卡一区二区三区视频在线| 91观看网站| 国产精品xxxav免费视频| 97se亚洲综合在线| 久久99国产精品久久99大师| 激情小说综合区| 国产精品一国产精品| 色一情一乱一伦一区二区三欧美 | 久久久综合九色合综国产精品| 瑟瑟视频在线观看| 中文字幕精品在线不卡| 神马久久精品综合| 一区二区三区色| 日韩久久久久久久久| 欧美视频一区二区三区…| 中文字幕在线天堂| 6080日韩午夜伦伦午夜伦| 国产福利视频导航| 精品亚洲精品福利线在观看| 国产毛片av在线| 久久天天躁狠狠躁夜夜躁2014| 污污视频在线看| 欧美制服第一页| 视频91a欧美| 粉嫩av一区二区三区免费观看| 乱亲女h秽乱长久久久| 视频一区视频二区视频三区视频四区国产 | 好吊妞视频这里有精品| 日本在线一区| 中文字幕亚洲精品乱码| 无码人妻丰满熟妇区96| 免费观看成人av| 少妇搡bbbb搡bbb搡打电话| 久久日韩精品一区二区五区| 国产传媒免费在线观看| 精品久久久久久久久久久久久| 精品成人无码久久久久久| 5566中文字幕一区二区电影| 午夜视频福利在线| 色琪琪综合男人的天堂aⅴ视频| av中文在线资源| 国产男女猛烈无遮挡91| 欧美理伦片在线播放| 一区精品视频| 国产精品女主播一区二区三区| 中文字幕有码av| 成人av一区二区三区| 日韩一区二区三区四区视频| 福利视频第一区| 国产特级黄色片| 国产亚洲人成网站在线观看| 超黄网站在线观看| 国产日韩欧美在线看| 欧美女王vk| 成人一对一视频| 国产剧情在线观看一区二区| 99久久人妻无码中文字幕系列| 亚洲三级电影网站| 中文 欧美 日韩| 亚洲欧美日韩国产中文专区| 欧美性爽视频| 91免费国产视频| 日韩精品dvd| 日韩免费高清在线| 99这里只有久久精品视频| 全程偷拍露脸中年夫妇| 欧洲精品中文字幕| 日韩福利一区二区| 欧美精品久久久久久久久久| 久久伦理中文字幕| 日本特级黄色大片| 蜜臀av性久久久久蜜臀av麻豆| aa片在线观看视频在线播放| 亚洲午夜视频在线| 午夜精品无码一区二区三区| 日韩中文在线中文网三级| 欧美特黄aaaaaaaa大片| 精品免费日产一区一区三区免费| 欧美精品啪啪| 欧美一级片在线免费观看| 亚洲同性gay激情无套| 国产精品久久久久久免费播放| 中文字幕国产日韩| 日产精品一区| 色吧亚洲视频| 蜜臀av性久久久久av蜜臀妖精 | 欧美一区二区麻豆红桃视频| 黄色a级片免费| 久久―日本道色综合久久| 欧美性猛交bbbbb精品| 亚洲女人天堂色在线7777| 成人免费短视频| 欧美综合77777色婷婷| 日韩—二三区免费观看av| 免费在线观看a视频| 欧美日韩午夜影院| 在线免费观看黄色av| 国产一区红桃视频| 国产精品久久久久无码av| 五月天婷婷在线观看视频| 亚洲老司机在线| 亚洲精品久久久狠狠狠爱| 久久久久国产精品免费| 国产毛片久久久| 欧美日韩第二页| 中文字幕中文字幕一区二区| 国产原创中文av| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美在线黄色| 性农村xxxxx小树林| 狠狠爱在线视频一区| eeuss影院www在线播放| 国产在线观看一区二区三区| 自拍偷拍欧美| 9.1成人看片| 欧美亚州韩日在线看免费版国语版| 成人网视频在线观看| 91久久在线观看| 18成人免费观看视频| 久久精品视频18| 欧美日韩在线播放一区| 中文国产字幕在线观看| 九九九九九九精品| 日本视频一区二区| 国产一区二区三区在线视频观看| 精品三级av在线| 五月激情久久| 999久久欧美人妻一区二区| 91在线精品一区二区| 一区二区视频免费观看| 久久久久久伊人| 久久久影院免费| 好男人香蕉影院| 欧美日韩激情一区二区| 激情网站在线| 亚洲在线观看一区| zzijzzij亚洲日本少妇熟睡| 中文字幕第31页| 性视频1819p久久| 久久国产影院| 免费的av网站| 制服丝袜av成人在线看| 中文字幕乱码在线播放| 黄色高清视频网站| 久久欧美中文字幕| 精品久久在线观看| 国产精品免费看久久久香蕉| 国产一区二区你懂的| 久久久精品少妇|