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

Go 項目怎么做好分層架構(gòu)和目錄規(guī)劃

開發(fā) 架構(gòu)
分層架構(gòu)的一個重要原則是:每層只能與位于其下方的層發(fā)生耦合。我們大多數(shù)時候使用的是松散型分層架構(gòu),允許上層與任意下層發(fā)生耦合。

開發(fā)項目的時候我們都愛說XX模塊,模塊一般是跟著項目所服務(wù)的業(yè)務(wù)走的。而項目的分層則沒有那么依賴具體的業(yè)務(wù)類型,靠一些軟件設(shè)計的方法論和經(jīng)驗在項目搭建初期就能大體確定其結(jié)構(gòu)。

我給大家介紹一下Go項目的分層架構(gòu)設(shè)計,把整個項目的結(jié)構(gòu)按職能進行劃分,規(guī)劃出整個項目的目錄結(jié)構(gòu)。

圖片圖片

分層架構(gòu)

談到給項目的代碼分層,必然少不了對分層架構(gòu)的回顧。分層架構(gòu)如下圖所示

圖片圖片

分層架構(gòu)的一個重要原則是:每層只能與位于其下方的層發(fā)生耦合。我們大多數(shù)時候使用的是松散型分層架構(gòu),允許上層與任意下層發(fā)生耦合。

這里說的耦合可以先理解成包和包之間的引用關(guān)系,這樣更好理解一些。所以在我們設(shè)計項目的結(jié)構(gòu)時,要注意下層的package 一定不能引用上層的package。使用松散型分層架構(gòu)的目的是讓我們的設(shè)計能更靈活,必要時出現(xiàn)跨層直接訪問的情況也是被允許的。注意哦,不是推薦我們有事兒沒事都直接在用戶接口層訪問DAO查數(shù)據(jù)哦。

舉個例子假如有個舊項目把很多東西都寫在了controller里,又假如你是那個接過來要負(fù)責(zé)它的苦命人,你本來下定決心以后的新代碼都好好寫不能再這么潦草下去啦,比如說你把把一些新的邏輯放到service里。

但是業(yè)務(wù)系統(tǒng)一般都是在老需求基礎(chǔ)上迭代,新老代碼會有調(diào)用關(guān)系,這時候你卻發(fā)現(xiàn)原來的邏輯都在controller里,那這時你要不把用到的老邏輯往service放一份,要不你也徹底放棄往controller直接寫完事兒啦,你咋選?

項目排期那么緊,我估計換誰都是徹底放棄,就往controller里寫吧。所以在項目搭建的開始階段就確定后分層結(jié)構(gòu)還是很有必要的,后期做需求開發(fā)時就可以相對無腦一些按照層次結(jié)構(gòu)往里面套,不同的邏輯寫到不同的層里。

上面這個例子是不是很好的體現(xiàn)了大家平時在公司接管項目初期的心理呀,我相信多少人都遇到過這種情況。

好了,回到主題,下面簡單說一下分層架構(gòu)中各個層的職責(zé)。

用戶接口層:

用戶接口層只用于處理用戶界面顯示和用戶的請求響應(yīng),針對后端API服務(wù),基本上該層就是負(fù)責(zé)接受用戶請求、驗證請求、調(diào)用下層拿到結(jié)果返回響應(yīng),在這里不應(yīng)該包含核心業(yè)務(wù)邏輯。

應(yīng)用層

應(yīng)用層里面是應(yīng)用服務(wù),主要負(fù)責(zé)用例流的任務(wù)協(xié)調(diào),每個用例流對應(yīng)一個服務(wù)方法(可以理解為API接口),應(yīng)用服務(wù)是領(lǐng)域服務(wù)的直接調(diào)用者,它主要協(xié)調(diào)對領(lǐng)域服務(wù)的操作,同時像發(fā)送基于某個事件的消息通知、發(fā)郵件、短信給用戶等操作都會寫在應(yīng)用層,這樣能讓領(lǐng)域服務(wù)能專注于核心的業(yè)務(wù)邏輯。

應(yīng)用服務(wù)還有一個作用是,當(dāng)一個API的邏輯需要多個領(lǐng)域服務(wù)一起協(xié)作來完成時,一個清晰的解決方案是通過應(yīng)用服務(wù)來對多個領(lǐng)域服務(wù)來進行協(xié)調(diào)調(diào)用。

圖片圖片

領(lǐng)域?qū)?/span>

領(lǐng)域?qū)邮钦嬲龑憳I(yè)務(wù)邏輯的地方,這個業(yè)務(wù)邏輯可以理解成本領(lǐng)域的核心業(yè)務(wù)邏輯,比如怎么通過CRUD完成某件事寫在這里,而成功或者失敗后向什么地方推送消息通知、調(diào)用其他領(lǐng)域服務(wù)、請求其他API 這些核心之外的業(yè)務(wù)邏輯則寫在應(yīng)用層的應(yīng)用服務(wù)里,領(lǐng)域?qū)又魂P(guān)注本領(lǐng)域里的業(yè)務(wù)邏輯,應(yīng)用層負(fù)責(zé)協(xié)調(diào)調(diào)度它們。

基礎(chǔ)層

基礎(chǔ)層放置我們?yōu)轫椖刻峁┑囊恍┕?、通用的能力:?shù)據(jù)的訪問和持久化、對接第三方平臺能力而封裝的庫、為項目開發(fā)的基礎(chǔ)組件等都放在這一層。

注意這里說的層都是概念性的,不是指具體項目中的某個目錄或者package。

分層后的目錄結(jié)構(gòu)

我們的Go項目,按照分層架構(gòu)進行規(guī)劃后,可以用下面這張圖表示。

圖片圖片

圖中的邏輯層我是用虛線框住的,代表所有與邏輯相關(guān)的應(yīng)該放在應(yīng)用和領(lǐng)域?qū)又?,它們邏輯?cè)重點有些不同,上面我們已經(jīng)說過應(yīng)用和領(lǐng)域?qū)拥膮^(qū)別了,我們在專欄教程里還有更多的實際需求的例子來體現(xiàn)它們之間的區(qū)別。

整個項目按分層架構(gòu)以及各種實際功能的需要,目錄結(jié)構(gòu)的規(guī)劃如下

.
|---api 
|     |---controller  # 控制器
|     |---reply  # 響應(yīng)對象
|     |---request  # 請求對象
|     |---router  # 路由
|---common  
|     |---app     # 分頁和接口響應(yīng)處理
|     |---enum    # 枚舉
|     |---errcode # 項目錯誤管理
|     |---logger  # 項目的日志門面
|     |---middleware  # 中間件
|     |---util  # 輔助函數(shù)
|---config # 配置
|---dal    # 數(shù)據(jù)訪問層
|     |---cache    # 緩存
|     |---dao    # 數(shù)據(jù)訪問對象
|     |---model    # 數(shù)據(jù)模型對象
|---event
|---library
|---logic    # 邏輯層
|     |---appservice    # 應(yīng)用服務(wù)
|     |---domainservice # 領(lǐng)域服務(wù)
|     |---do # 領(lǐng)域?qū)ο?   
|---resources # 資源目錄
|---test # 測試腳本

怎么防止分層"塌陷”

代碼有了分層后,如果使用不當(dāng)一定會導(dǎo)致分層塌陷,最后還是把代碼寫成一坨,那怎么能盡量減少這在情況出現(xiàn)呢?除了"各個層職責(zé)單一"的片湯話外其實是有明確的辦法的,老外把這個東西叫做防腐層。

防腐層有很多種,簡單和最常用的就是各種數(shù)據(jù)對象, 他們之間的轉(zhuǎn)化讓各個層都能獨立的發(fā)展,能最大限度避免代碼層的塌陷。

項目中設(shè)計了四種數(shù)據(jù)對象:請求對象,數(shù)據(jù)實體Model對象,領(lǐng)域?qū)ο蠛晚憫?yīng)對象

下面這張圖展示了一個完整的API請求中客戶端與服務(wù)的完整交互過程中每種數(shù)據(jù)對象產(chǎn)生的時段和位置。根據(jù)API請求、邏輯的復(fù)雜程度我們可以有選擇的選擇其中幾個對象完成接口的請求和響應(yīng)數(shù)據(jù)的返回。

圖片圖片

通過上面四種數(shù)據(jù)對象,程序的每個分層都可以專注自己的事兒,DAO層、Service層不必考慮接口要返回什么格式,用戶接口層也不用怕把一些不該暴露的字段數(shù)據(jù)給暴露了出去。

責(zé)任編輯:武曉燕 來源: 網(wǎng)管叨bi叨
相關(guān)推薦

2021-12-24 07:10:36

架構(gòu)分層模塊化

2022-11-03 17:01:10

2021-03-11 17:36:51

架構(gòu)分模塊分層

2021-03-06 16:16:15

分模塊分層

2021-11-01 20:17:07

Go項目目錄

2022-09-26 11:32:14

用戶分層服務(wù)業(yè)務(wù)

2021-03-18 12:16:44

用戶分層業(yè)務(wù)

2023-05-31 08:41:23

分層架構(gòu)對象模型

2024-12-05 09:13:55

Go項目模塊

2023-08-02 08:51:46

服務(wù)架構(gòu)分層架構(gòu)

2024-10-30 09:29:30

Go項目Error

2019-10-10 10:30:26

MVCModelController

2025-05-07 09:06:03

2021-06-17 07:47:03

軟件架構(gòu)分層

2020-07-28 08:36:54

數(shù)據(jù)安全數(shù)據(jù)泄露數(shù)據(jù)

2018-05-15 15:33:07

Leader前端團隊

2019-12-16 08:08:39

六邊形架構(gòu)分層架構(gòu)架構(gòu)

2022-08-15 08:06:49

Go語言類型

2011-06-15 17:23:53

SEO

2023-06-16 13:34:00

軟件架構(gòu)模式
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲视频电影在线| а√天堂资源官网在线资源| 另类小说视频一区二区| 九九热r在线视频精品| 秘密基地免费观看完整版中文| 欧亚av在线| 亚洲欧美自拍偷拍| 久久99欧美| 99热这里只有精品5| 男女av一区三区二区色多| 日韩在线观看免费| 一区二区视频观看| 91精品国产一区二区在线观看 | 欧美精品亚洲| 国产精品怡红院| 午夜影院日韩| 欧美国产日韩精品| 国产一区第一页| 香蕉久久精品日日躁夜夜躁| 日韩亚洲国产中文字幕欧美| 黄色一级大片在线观看| wwwww亚洲| 亚洲色图欧美在线| 日韩国产一区久久| 天堂av手机版| 韩国精品久久久| 国产精品欧美一区二区| 9i看片成人免费看片| 欧美精品导航| xxx欧美精品| 蜜臀久久99精品久久久久久| 狼人精品一区二区三区在线| 日韩一级片在线播放| 在线观看免费视频高清游戏推荐| 最近高清中文在线字幕在线观看1| 一区二区三区在线免费| 国产av不卡一区二区| 97最新国自产拍视频在线完整在线看| www国产精品av| 韩国成人av| 欧洲日韩成人av| 亚洲一区二区自偷自拍| 欧美黄色录像| 亚洲精品99久久久久中文字幕| 亚洲精品无码久久久久久久| 欧洲午夜精品| 欧美日韩国产高清一区二区三区 | 成人高潮免费视频| 97色伦图片97综合影院| www.四虎精品| 深夜福利在线看| 懂色av一区二区三区免费看| 亚洲一区二区中文| av高清一区二区| 国产精品亚洲视频| 肥熟一91porny丨九色丨| 精品国产va久久久久久久| 国产一区二区h| 99www免费人成精品| 性中国古装videossex| 国产大陆a不卡| 国产一区二区三区高清| 午夜视频福利在线观看| 久久综合狠狠综合久久激情| 欧美日韩在线精品| 99视频在线观看地址| 日韩毛片在线免费观看| 欧美黄网在线观看| 日韩伦理电影网站| 欧美日韩国产专区| 青青草av网站| 国产精品igao视频网网址不卡日韩| 91精品在线麻豆| 无码任你躁久久久久久老妇| 日韩激情啪啪| 中文字幕在线亚洲| 欧美国产在线看| 99在线精品视频在线观看| 国产精品99久久久久久久久 | 久艹在线观看视频| 亚洲国产精品一区| 国产成人精品久久二区二区91| 中文字幕你懂的| 高清不卡一区二区在线| 欧美凹凸一区二区三区视频| 欧美精品hd| 午夜视频一区二区三区| 在线免费视频一区| 亚洲精品福利| 亚洲人成网在线播放| 国产美女久久久久久| 亚洲日韩成人| 国产日韩精品在线播放| 日本高清视频在线| 国产精品三级在线观看| 国产精品12345| 久久久久毛片| 日韩hd视频在线观看| 中国1级黄色片| 99成人在线| 成人免费午夜电影| 欧美xxx.com| 一区二区三区欧美日| 成年人小视频网站| silk一区二区三区精品视频| 在线成人免费网站| 欧美三级一区二区三区| 黄一区二区三区| 欧美亚洲精品日韩| av3级在线| 91精品国产色综合久久不卡电影 | 国产色综合天天综合网| 无码精品黑人一区二区三区| 亚洲婷婷国产精品电影人久久| 国产亚洲综合视频| 澳门成人av| 久久综合免费视频| 中文字幕在线2018| 久久久另类综合| 国产亚洲黄色片| 国产精品毛片aⅴ一区二区三区| 亚洲视频国产视频| 波多野结衣国产| 成人亚洲一区二区一| 国产日韩视频在线播放| 99riav视频一区二区| 精品视频一区在线视频| 91精品国产乱码久久久张津瑜| 国产麻豆视频精品| 在线无限看免费粉色视频| 精品网站在线| 一区二区国产精品视频| 亚洲s码欧洲m码国产av| wwwwxxxxx欧美| 成人一区二区免费视频| jizz性欧美23| 国内偷自视频区视频综合| 丰满少妇一级片| 一区二区三区鲁丝不卡| 一本之道在线视频| 一本一道久久综合狠狠老| 国产日韩精品在线播放| 蜜芽在线免费观看| 欧美日本在线播放| 亚洲少妇xxx| 激情六月婷婷久久| 国产91porn| jizz国产精品| 2019日本中文字幕| 欧美美女色图| 在线观看视频欧美| 成人黄色短视频| 久久99精品国产麻豆婷婷洗澡| 在线视频不卡一区二区| 91精品国产色综合久久不卡粉嫩| 久久精品欧美视频| 99久久夜色精品国产亚洲| 亚洲欧美激情一区二区| 中文字幕第10页| 国产综合激情| 亚洲在线观看视频| 成全电影大全在线观看| 日韩经典中文字幕| 成人午夜精品视频| 亚洲色图第一区| 中文字幕第九页| 久久精品91| 在线观看日韩羞羞视频| 午夜视频一区二区在线观看| 久久久久久久久国产| 日本不卡免费播放| 欧美午夜寂寞影院| 放荡的美妇在线播放| av网站一区二区三区| 99999精品视频| 久久免费大视频| 成人综合色站| 色天使综合视频| 久久视频在线看| 亚洲 欧美 激情 小说 另类| 欧美性猛片aaaaaaa做受| √天堂中文官网8在线| 成人在线视频一区二区| 熟女人妇 成熟妇女系列视频| 99精品综合| 国产女人水真多18毛片18精品 | 精品久久久久久亚洲国产300| 国产精品久久久久久久无码| 久久久蜜桃一区二区人| 亚洲午夜精品久久| 国产伦理久久久久久妇女| 国产精品1区2区在线观看| 18视频在线观看网站| 精品视频在线导航| 国产精品久久久久久免费| 亚洲午夜三级在线| 亚洲av毛片基地| 国产探花在线播放| 美女精品在线观看| 中文字幕一区二区三区四区五区人| 波多野结衣欧美| 国产精品夜间视频香蕉| 超碰91在线观看| 三级精品视频久久久久| 日中文字幕在线| 日韩一区二区免费在线电影| 伊人久久久久久久久久久久 | 日韩专区精品| 日韩一级二级三级精品视频| 日韩伦理在线视频| 国产精品久久久久久妇女6080 | 一级黄色片播放| 国产欧美日韩精品一区二区免费 | 成人黄色激情网| 久九九久频精品短视频| 久久久久久18| 粗大黑人巨茎大战欧美成人| 亚洲性69xxxbbb| 日本天堂影院在线视频| 精品国一区二区三区| 国产欧美日韩成人| 欧美色视频在线| 久久久久久不卡| 偷拍一区二区三区四区| 1024手机在线视频| ...av二区三区久久精品| 成人免费视频入口| 国产喷白浆一区二区三区| 中文字幕av网址| 91麻豆免费在线观看| 捆绑裸体绳奴bdsm亚洲| 不卡大黄网站免费看| 香蕉视频免费网站| 岛国精品在线观看| 91丝袜超薄交口足| 国产一区视频导航| 午夜精品久久久久久久99热影院| 蜜桃免费网站一区二区三区| 亚洲天堂av线| 奇米一区二区三区| 亚洲精品久久嫩草网站秘色| 免费在线激情视频| 亚洲视频1区| 青青视频在线播放| 欧美综合二区| 不卡av免费在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 成人性做爰aaa片免费看不忠| 老牛嫩草一区二区三区日本 | 奇米888四色在线精品| 日韩一级免费在线观看| 欧美a级一区二区| 天堂视频免费看| 国产一区亚洲一区| 中国特级黄色大片| 91色综合久久久久婷婷| 婷婷色一区二区三区 | 久久久99精品| 亚洲狠狠爱一区二区三区| 国产在线成人精品午夜| 精品久久香蕉国产线看观看亚洲| 久久久久久久av| a级片在线免费观看| 韩国v欧美v日本v亚洲| 91制片在线观看| 久久青草福利网站| 韩漫成人漫画| 成人国产在线视频| 国产伦乱精品| 视频二区一区| 欧美激情 亚洲a∨综合| 青青草国产精品视频| 视频一区二区三区入口| 国产3p在线播放| 成人动漫中文字幕| 日本一级免费视频| 亚洲欧美日韩国产综合| 日韩精品成人一区| 欧美视频一区在线| www.精品视频| 亚洲色图18p| 日本无删减在线| 国产激情综合五月久久| 国产日韩在线观看视频| 国产视色精品亚洲一区二区| 欧美日韩一二三四| www.国产二区| 日本不卡高清视频| 日本在线不卡一区二区| 国产精品免费久久久久| 日韩精品成人一区| 3d成人h动漫网站入口| 色吊丝在线永久观看最新版本| 久久国产三级精品| 亚洲综合在线一区二区| 99精品国产91久久久久久| 中国特黄一级片| 午夜精品一区二区三区三上悠亚| 国产在线一级片| 亚洲精品www久久久| 日本在线www| 91av免费观看91av精品在线| 亚洲精品无播放器在线播放| 蜜桃视频成人| 黄色av一区| 中文字幕久久av| 久久久久国产免费免费| 久久久一二三区| 在线成人小视频| 国产精品99999| 91地址最新发布| 超碰成人福利| 国产91在线亚洲| 麻豆精品一区二区av白丝在线| 精品国产av色一区二区深夜久久| 亚洲欧美色综合| 在线视频1卡二卡三卡| 亚洲欧美日韩在线高清直播| 黄色大片在线| 亚洲最大av网| 亚州av乱码久久精品蜜桃| 性生交免费视频| 久久久精品天堂| 综合激情网五月| 亚洲高清一二三区| 国产99re66在线视频| 91中文精品字幕在线视频| 久久福利综合| 国产一区美女在线| 亚洲高清在线观看一区| 国色天香一区二区| 91热视频在线观看| 国产精品蜜臀av| 国产偷人爽久久久久久老妇app | 欧美孕妇孕交| 欧美亚洲另类视频| 秋霞影视一区二区三区| 亚洲欧美一级| 日本不卡一二三区| 母乳一区在线观看| 日本黄色网址大全| 欧美日韩国内自拍| 无码精品在线观看| 91国产精品91| 亚洲综合小说图片| 成人小视频在线看| 国产无遮挡一区二区三区毛片日本| 日本天堂网在线| 亚洲另类欧美自拍| 日韩三区免费| 中文字幕一区综合| 国产精品系列在线观看| 久久久久久久久久99| 亚洲成人黄色在线观看| 7777kkk亚洲综合欧美网站| 精品综合在线| 久久婷婷影院| 99久久精品久久亚洲精品| 91精品国产高清一区二区三区| 亚洲丝袜一区| 精品午夜一区二区| 日韩av高清在线观看| 91高清免费观看| 精品国产免费一区二区三区香蕉| 不卡视频观看| 神马影院我不卡午夜| 国产一区二区调教| 国产无遮无挡120秒| 亚洲人成电影在线| 99久热在线精品视频观看| 女人被男人躁得好爽免费视频| 99久久久久免费精品国产| 一级黄色av片| 美日韩丰满少妇在线观看| 国产成人福利av| 欧美精品aaaa| 亚洲一区二区三区中文字幕| 全色精品综合影院| 91中文字幕在线| 欧美亚洲视频| 三级影片在线看| 亚洲欧美在线免费观看| 成人动漫视频在线观看| 国产青青在线视频| 中文字幕一区二区不卡| 你懂的网站在线| 国产精品极品美女在线观看免费| 欧美不卡一区| 中文字幕在线观看免费高清| 日韩精品一区二区三区四区 | 中文字幕一区二区三区在线视频 | 日韩爱爱小视频| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩伦理片| 99在线国产| 看电视剧不卡顿的网站| 国产成人免费观看视频| 久久成年人免费电影| 精品一区二区三区在线| 三级视频网站在线观看|