精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

色婷婷综合久色| 91在线精品一区二区| 欧美成人国产va精品日本一级| 中文字幕第三区| wwww亚洲| 国产精品视频在线看| 亚洲va久久久噜噜噜| 中日韩精品视频在线观看| 黑人操亚洲人| 日韩欧美区一区二| 国产成人av影视| 欧洲日本在线| 久久蜜臀中文字幕| 99在线免费观看视频| 天天干天天操天天操| 黄色成人在线网站| 丝袜亚洲另类欧美重口| 日韩无码精品一区二区| 99久久精品一区二区成人| 洋洋av久久久久久久一区| 视频一区二区精品| 天天操天天干天天爱| 精品一区二区三区久久| 亲爱的老师9免费观看全集电视剧| 欧美特黄一级片| 午夜a一级毛片亚洲欧洲| 欧美一区二区高清| 在线免费视频一区| 在线能看的av网址| 亚洲444eee在线观看| 国产麻豆电影在线观看| 国产69精品久久app免费版| 成人精品鲁一区一区二区| 国产日韩中文字幕在线| 中文字幕精品视频在线观看| 亚洲福利电影| 美女av一区二区三区| 国产又粗又长又黄的视频| 亚洲视频分类| 日韩激情av在线播放| 国产伦精品一区二区三区妓女下载 | 丰满圆润老女人hd| 欧美黄色影院| 精品欧美一区二区在线观看| 佐山爱在线视频| 亚洲精品777| 欧美日韩1234| 污视频网站观看| 992tv国产精品成人影院| 91久久精品国产91性色tv| 免费成人午夜视频| 在线看片国产福利你懂的| 天涯成人国产亚洲精品一区av| 日韩精品一区在线视频| www欧美xxxx| 午夜精品久久久久久| 丁香花在线影院观看在线播放| 性xxxfreexxxx性欧美| 一级中文字幕一区二区| 青青青在线观看视频| 天堂av最新在线| 亚洲在线视频免费观看| 国产一级做a爰片久久毛片男| 韩国成人免费视频| 午夜精品久久久久久| 国产精品无码av在线播放| 美女高潮在线观看| 色综合天天综合给合国产| 国产精品免费成人| 视频精品导航| 在线播放一区二区三区| a级大片免费看| xxxx日韩| 亚洲女人天堂视频| 99久久久无码国产精品不卡| 亚洲激情久久| 久久久久久久亚洲精品| 免费看毛片网站| 美女视频第一区二区三区免费观看网站 | 日韩欧美国产wwwww| 97人妻精品一区二区三区免费| 丝袜连裤袜欧美激情日韩| 亚洲天堂男人的天堂| 久久嫩草捆绑紧缚| 亚洲婷婷免费| 日本成人精品在线| 国产三级在线观看视频| 99天天综合性| 午夜精品亚洲一区二区三区嫩草| 在线观看中文| 欧美日韩国产一区二区| 可以免费在线看黄的网站| 四虎成人精品一区二区免费网站| 欧美大片日本大片免费观看| 99久久久无码国产精品性| 99久久www免费| 久久久免费电影| 一级一级黄色片| 懂色一区二区三区免费观看| 欧美黄色直播| 五月婷婷视频在线观看| 色94色欧美sute亚洲13| 极品白嫩的小少妇| 日韩欧美视频在线播放| 午夜精品久久久久久久白皮肤 | 在线欧美不卡| 国产精品电影一区| 丰满肥臀噗嗤啊x99av| 国产天堂亚洲国产碰碰| www.18av.com| 成人黄色免费观看| 亚洲精品理论电影| 成人信息集中地| 亚洲欧美卡通另类91av| 99免费在线观看视频| 国产永久免费高清在线观看 | 久久久久久久免费视频| 成人av观看| 欧美精品一区男女天堂| 国产一二三四区| 奇米影视一区二区三区小说| 国内精品二区| 黄网在线免费看| 欧美日韩电影在线播放| a级片在线观看| 怡红院精品视频在线观看极品| 成人黄色影片在线| 国产资源在线播放| 精品国产91久久久久久| 亚洲精品久久一区二区三区777| 婷婷综合久久| 国产精品久久久久久久久借妻 | 99精品国产热久久91蜜凸| www.-级毛片线天内射视视| 久久久人成影片一区二区三区在哪下载 | 欧洲在线一区| 欧美高清在线观看| www日本视频| 亚洲女厕所小便bbb| 香港日本韩国三级网站| 欧美色网址大全| 国产精品久久久| 国产网站在线播放| 在线观看国产一区二区| 中国女人特级毛片| 日韩av在线发布| 精品国产一区二区三区四区精华| 色婷婷av在线| 精品久久久久久综合日本欧美| 国产97免费视频| 国产精品1024| 99热亚洲精品| 女人抽搐喷水高潮国产精品| 91精品国产一区| 日本成人一区| 91久久久免费一区二区| 免费看黄色三级| 麻豆一区二区在线| 91看片淫黄大片91| 久久丝袜视频| 国产mv久久久| 成人在线观看黄色| 欧美女孩性生活视频| 永久免费看片直接| 成人综合在线观看| 18禁免费观看网站| 自拍亚洲一区| 国产精品青青在线观看爽香蕉 | 久久福利视频网| 午夜精品久久久久久久96蜜桃| 亚洲一区二区三区三| 精品国产人妻一区二区三区| 天堂精品中文字幕在线| 亚洲一区三区在线观看| 日韩中文字幕无砖| 欧美与黑人午夜性猛交久久久| 国产资源在线观看| 91精品福利在线一区二区三区| 精品视频在线观看免费| 久久精品一级爱片| 人妻换人妻仑乱| 亚洲经典在线| 午夜精品一区二区在线观看的| 精品国产三区在线| 欧美亚洲另类制服自拍| 欧美三级理伦电影| 日韩成人在线视频| 在线观看亚洲国产| 午夜免费久久看| 日韩影视一区二区三区| 国产福利91精品一区二区三区| 国产91在线视频观看| 国产精品传媒精东影业在线| 国外成人免费视频| 亚洲欧美综合久久久久久v动漫| 久久久人成影片一区二区三区观看| 国产最新视频在线观看| 欧美va亚洲va| 91精东传媒理伦片在线观看| 亚洲国产精品久久不卡毛片| a资源在线观看| bt欧美亚洲午夜电影天堂| 久热精品在线播放| 亚洲伦伦在线| 麻豆传媒网站在线观看| 精品国产网站| 狠狠爱一区二区三区| 亚洲精品大全| 国产成人综合一区二区三区| tube8在线hd| 日日骚av一区| 国际av在线| 亚洲国产欧美一区二区三区同亚洲 | 蜜芽在线免费观看| 亚洲色图校园春色| 熟妇人妻中文av无码| 日韩三级视频在线看| 中文字幕av片| 日韩欧美一区视频| 五月天综合在线| 亚洲精品乱码久久久久久| 99国产精品无码| 中文字幕国产一区| 亚洲黄色小说视频| 97se亚洲国产综合在线| 精品伦一区二区三区| 久久成人麻豆午夜电影| 福利在线一区二区三区| 性伦欧美刺激片在线观看| 欧美一级视频免费看| 欧美日韩综合| www国产无套内射com| 久久久久亚洲| 一区二区三区不卡在线| 欧州一区二区| 日韩国产在线一区| 国产va免费精品观看精品视频| 久久精彩视频| 日韩伦理一区二区三区| 精品欧美一区二区久久久伦| 成人涩涩网站| 91九色蝌蚪成人| 亚洲开心激情| 国产精品免费一区二区三区四区| 一本一道久久a久久| 国产精品免费一区二区三区在线观看| 亚洲一区二区三区中文字幕在线观看| 97久久天天综合色天天综合色hd | 欧美78videosex性欧美| 欧美裸体男粗大视频在线观看 | 26uuu国产精品视频| 91av久久| 欧美黄色片免费观看| 国产美女一区视频| 91国产美女视频| 中国色在线日|韩| 国产成人精品亚洲精品| 美女视频一区| 18成人在线| 一区二区在线免费播放| 精品久久久久久一区二区里番| 任我爽精品视频在线播放| 久久久一本精品99久久精品66 | 99久热在线精品视频观看| 91欧美精品午夜性色福利在线| 久久久久久久久成人| 国产乱码精品一区二区三区卡| 男人的天堂久久| 欧美一区二区三区在线免费观看| 日产精品一区二区| eeuss中文| 91久久综合| 日韩有码免费视频| 国产在线观看一区二区| 青青草视频网站| 国产日产欧美一区二区三区| 欧美激情精品久久久久久免费| 一区二区三区在线免费观看| 日韩中文字幕在线观看视频| 欧美午夜精品免费| 性猛交富婆╳xxx乱大交天津| 日韩成人在线播放| 日本不卡在线| 91国内在线视频| 国产人妖一区| 国产在线资源一区| 久久综合99| 成年人午夜视频在线观看| 老司机午夜精品视频在线观看| 精品亚洲视频在线| 91一区二区三区在线观看| 很污很黄的网站| 欧美日韩中文字幕在线| 国产精品永久久久久久久久久| 亚洲国产精品视频在线观看| 欧美精品电影| 91成人精品网站| 精品国产第一国产综合精品| 欧美三级电影在线播放| 你懂的国产精品| 看欧美ab黄色大片视频免费| 国产ts人妖一区二区| 亚洲天堂岛国片| 亚洲成a人片在线不卡一二三区 | 欧美动漫一区二区| 中文字幕日韩欧美精品高清在线| 精品久久久久av| 成人网在线免费视频| 国产精品国产精品88| 91极品美女在线| 日韩一级片免费看| 欧美成人中文字幕| 久久婷婷五月综合色丁香| 久久久久久九九九九| 国产精品v日韩精品v欧美精品网站| 91蝌蚪视频在线观看| 91欧美激情一区二区三区成人| 极品颜值美女露脸啪啪| 欧美日韩美少妇| 成人在线观看网站| 国产成人精品电影久久久| 欧美毛片免费观看| 精品一区二区三区无码视频| 国产在线精品免费av| 午夜激情福利电影| 欧美日韩一区二区在线观看视频| 欧美色视频免费| 81精品国产乱码久久久久久| jizz性欧美2| 老子影院午夜伦不卡大全| 国产在线精品一区二区三区不卡| 色偷偷男人天堂| 欧美主播一区二区三区| 九色在线观看| 国产精品99导航| 狠狠做六月爱婷婷综合aⅴ| www黄色在线| 国产视频一区在线观看 | 午夜在线播放视频欧美| 久久久久久久无码| 欧美日韩人人澡狠狠躁视频| 天堂影院在线| 1769国产精品| 无码日韩精品一区二区免费| 国产91美女视频| 久久久91精品国产一区二区精品| 国产精品视频一区在线观看| 精品亚洲一区二区三区四区五区| 欧美办公室脚交xxxx| 免费av在线一区二区| 玖玖国产精品视频| 91香蕉国产视频| 欧美一区二区视频观看视频| 岛国中文字幕在线| 99九九视频| 国模一区二区三区| 亚洲最大免费视频| 欧美性猛交xxxx富婆| se在线电影| 91久久精品视频| 在线播放精品| 插吧插吧综合网| 欧美日韩亚洲另类| a级毛片免费观看在线| 99在线视频首页| 一本久久知道综合久久| 88久久精品无码一区二区毛片| 欧美日韩一区二区不卡| 黄色网址在线免费播放| 成人在线免费观看一区| 国产精品久久久久久模特 | 夜夜揉揉日日人人青青一国产精品| 黄色小视频免费在线观看| 欧美中文在线观看国产| 久久在线电影| 在线观看免费视频国产| 一本久道中文字幕精品亚洲嫩| 午夜视频在线免费观看| 91在线精品播放| 国产美女诱惑一区二区| ass极品国模人体欣赏| 日韩一级视频免费观看在线| 888av在线视频| 杨幂一区欧美专区| 成人av网站免费| 91一区二区视频| 51ⅴ精品国产91久久久久久| 久久人人99| 日韩av手机在线播放| 欧美欧美欧美欧美| 日本乱码一区二区三区不卡| 一本一道久久久a久久久精品91| 成人午夜视频福利| 一区二区三区黄| 欧美野外猛男的大粗鳮| 欧美一区二区三区免费看| 亚欧洲乱码视频| 精品久久久网站| 日韩专区视频| 妞干网在线免费视频|