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

聊聊六邊形架構(gòu),對代碼的編寫有很好的指導(dǎo)作用

開發(fā) 架構(gòu)
六邊形架構(gòu)(Hexagonal Architecture),也被稱為端口與適配器架構(gòu)(Ports and Adapters Architecture),是一種軟件架構(gòu)模式,旨在實現(xiàn)高內(nèi)聚、低耦合和可測試性的應(yīng)用程序設(shè)計。該架構(gòu)由 Alistair Cockburn 發(fā)明,他是敏捷宣言的簽署者之一。

指導(dǎo)我們寫出漂亮代碼有一種方式是學(xué)習(xí)設(shè)計模式,自從 Gof 四人組的《設(shè)計模式》出版后,各類設(shè)計模式的書層出不窮。熟讀這類書籍,對面試肯定是有幫助的,但代碼能力是否有大的長進(jìn)就不一定了,如果沒能理解背后的思想,去生搬硬套,只會起反作用。

背后的思想就是指面向?qū)ο蟮脑瓌t:

  • 單一職責(zé)原則(SRP)
  • 開放封閉原則(OCP)
  • 里氏替換原則(LSP)
  • 接口隔離原則(ISP)
  • 依賴倒置原則(DIP)

這些原則就是告訴我們應(yīng)該怎么合理地組織類和方法。最終使我們開發(fā)的程序能夠滿足:可擴(kuò)展、可復(fù)用、可閱讀。只是看這些原則比較抽象,最近又看了下六邊形架構(gòu),我認(rèn)為對代碼的編寫有很好的指導(dǎo)作用,下面就聊聊六邊形架構(gòu)。

什么是六邊形架構(gòu)?

六邊形架構(gòu)(Hexagonal Architecture),也被稱為端口與適配器架構(gòu)(Ports and Adapters Architecture),是一種軟件架構(gòu)模式,旨在實現(xiàn)高內(nèi)聚、低耦合和可測試性的應(yīng)用程序設(shè)計。該架構(gòu)由 Alistair Cockburn 發(fā)明,他是敏捷宣言的簽署者之一。

從上圖可以看出有內(nèi)外兩層六邊形,深藍(lán)色和淺藍(lán)色。

  • 內(nèi)層(深藍(lán)色):負(fù)責(zé)領(lǐng)域內(nèi)的業(yè)務(wù)邏輯,相對獨立,不用關(guān)注任何外部依賴或技術(shù)細(xì)節(jié),也不用關(guān)心外部的客戶端和服務(wù),我們定義為領(lǐng)域?qū)印?/li>
  • 外層(淺藍(lán)色):負(fù)責(zé)獲取不同的業(yè)務(wù)域的數(shù)據(jù),進(jìn)行業(yè)務(wù)邏輯的組裝,并與外界進(jìn)行交互,我們定義為應(yīng)用層。

上圖中的紫色部分的 context 是我們在實踐過程中添加的,在應(yīng)用層中進(jìn)行邏輯組裝時,如果沒有業(yè)務(wù)上下文的概念,會導(dǎo)致很多方法被重復(fù)調(diào)用,所以在業(yè)務(wù)入口會進(jìn)行上下文的初始化,將上下文貫穿整個調(diào)用鏈。

端口和適配器

六邊形架構(gòu)也被稱為端口與適配器架構(gòu),端口和適配器是兩個非常關(guān)鍵且重要的概念。

端口

端口是應(yīng)用程序定義的接口,必須由外界實現(xiàn),以便應(yīng)用程序可以接收或發(fā)送信息,進(jìn)行解耦。這個接口是廣義的,不光是指 Interface,WebAPI 接口,一些類的公共方法也屬于接口的范疇。

端口有分為兩種:

  • 入站端口:業(yè)務(wù)服務(wù)對外暴露的公有方法。
  • 出站端口:出站端口只一組方法的接口定義,提供一種規(guī)范,供出站適配器來實現(xiàn)。

使用端口和適配器進(jìn)行處理應(yīng)用程序的輸入和輸出,端口只是一種抽象,是應(yīng)用程序在不了解任何內(nèi)容的情況下與外界交互的一種方式。

例如:如果想要進(jìn)行數(shù)據(jù)庫的讀取和寫入,不是直接操作數(shù)據(jù)庫,而是在接口中定義讀取和寫入的方法。應(yīng)用程序不需要知道數(shù)據(jù)來自哪里,需要寫到什么地方去,可能是數(shù)據(jù)庫,也可能是文件系統(tǒng)或緩存,甚至?xí)瑫r進(jìn)行操作。

適配器

適配器是連接應(yīng)用程序核心和外部接口的橋梁。它負(fù)責(zé)將外部請求轉(zhuǎn)換為應(yīng)用程序核心可以理解的格式,并將核心的響應(yīng)轉(zhuǎn)換為外部接口可以接受的格式。

適配器也分為兩種:

  • 入站適配器:通常就是對外的 RestAPI,通過調(diào)用入站端口來處理外部的請求,也可以是消息隊列的消費者,進(jìn)行一些事件的監(jiān)聽,來處理異步業(yè)務(wù),當(dāng)接收到消息時也是調(diào)用入站端口來進(jìn)行處理。
  • 出站適配器:出站適配器實現(xiàn)出站接口,調(diào)用外部的服務(wù)來實現(xiàn)一個完整的業(yè)務(wù)邏輯,出站適配器也可以是消息隊列的生產(chǎn)者。

當(dāng)要將數(shù)據(jù)保存到數(shù)據(jù)庫中時,適配器從接口定義的數(shù)據(jù)格式中獲取數(shù)據(jù),并將其轉(zhuǎn)換為可以寫入數(shù)據(jù)庫的內(nèi)容,重要的是,無論在適配器中怎么變化,核心域和接口不會發(fā)生變化。這就非常有用,將應(yīng)用程序的核心邏輯和外部存儲隔離開了。

正是由于端口和適配器的存在,程序變得穩(wěn)定和容易變化。

為什么叫六邊形架構(gòu)?

為什么叫六邊形架構(gòu)?而不是三角形、圓形、正方形呢?

目前沒有明確的理由說明為什么是六邊形,而不是其他的形狀。或許只是因為六邊形比較好看。又或許,一個小的六邊形代表這一個模塊,一個系統(tǒng)有很多這種模塊組成,模塊之間有輸入輸出的交互,就像蜂窩一樣。

而蜂窩正好是六邊形的。

六邊形架構(gòu)的特點

通過六邊形架構(gòu),應(yīng)用程序核心成為了架構(gòu)的中心,具有清晰的邊界和職責(zé),可以獨立于外部接口進(jìn)行測試和演進(jìn)。外部接口和適配器負(fù)責(zé)處理與外部系統(tǒng)的交互,使應(yīng)用程序核心保持獨立和可復(fù)用。主要有以下特點:

  • 高內(nèi)聚和低耦合:應(yīng)用程序核心獨立于外部依賴,使得不同部分的修改不會對其他部分產(chǎn)生影響,提高了代碼的可維護(hù)性。
  • 可測試性:應(yīng)用程序核心可以輕松地進(jìn)行單元測試,因為它不依賴于具體的外部接口或技術(shù)細(xì)節(jié)。
  • 可擴(kuò)展性:通過添加新的適配器,可以很容易地與新的外部系統(tǒng)進(jìn)行集成,而不會對應(yīng)用程序核心產(chǎn)生影響。

六邊形架構(gòu)的原則

當(dāng)我們談?wù)摿呅渭軜?gòu)時,會涉及到幾個核心原則。這些原則指導(dǎo)我們持續(xù)優(yōu)化軟件架構(gòu),使系統(tǒng)保持其整體的穩(wěn)定性。

  • 分離關(guān)注點:六邊形架構(gòu)將系統(tǒng)劃分為不同的層次,每個層次都有其特定的職責(zé)和關(guān)注點。這種分離使得每個組件可以專注于自身的任務(wù),降低了耦合性,提高了模塊的可復(fù)用性和可測試性。
  • 內(nèi)外部分離:六邊形架構(gòu)將系統(tǒng)劃分為內(nèi)部和外部兩個六邊形,分別代表核心業(yè)務(wù)邏輯和外部接口。內(nèi)部六邊形負(fù)責(zé)處理核心業(yè)務(wù)邏輯,而外部六邊形則負(fù)責(zé)處理業(yè)務(wù)整合和外部系統(tǒng)的交互。這種內(nèi)外部分離的設(shè)計使得系統(tǒng)更容易擴(kuò)展和適應(yīng)變化。
  • 依賴注入:六邊形架構(gòu)鼓勵使用依賴注入來管理組件之間的依賴關(guān)系。通過依賴注入,組件的依賴關(guān)系可以在運行時進(jìn)行配置,而不是在編譯時固定。這樣可以實現(xiàn)組件之間的松耦合,并且方便進(jìn)行替換和測試。
  • 接口驅(qū)動:六邊形架構(gòu)強(qiáng)調(diào)基于接口編程,通過定義清晰的接口和協(xié)議來促進(jìn)組件之間的通信。接口的使用讓各層之間解耦,又便于擴(kuò)展。
  • 測試驅(qū)動:六邊形架構(gòu)鼓勵在開發(fā)過程中采用測試驅(qū)動開發(fā)(TDD)的方法。通過編寫測試用例來定義組件的行為,然后逐步實現(xiàn)和改進(jìn)組件以滿足測試的要求。這種測試驅(qū)動的開發(fā)方法有助于保證系統(tǒng)的質(zhì)量和穩(wěn)定性。

根據(jù)這些原則,可以發(fā)現(xiàn),這些就是在文章開頭提到的那些面向?qū)ο蟮脑瓌t,通過六邊形架構(gòu)的包裝后,更具備實操性。

和 DDD 、微服務(wù)的關(guān)系

在網(wǎng)上查六邊形架構(gòu)的資料,六邊形架構(gòu)往往都跟 DDD 、微服務(wù)在一起被提及,但他們之間其實沒有很必然的聯(lián)系。

就像微服務(wù)和 DDD 一樣,也沒有必然聯(lián)系,因為:

  • DDD 中子域和限界上下文的概念可以對應(yīng)到微服務(wù)中的服務(wù)。
  • 微服務(wù)中一個服務(wù)可以由一個團(tuán)隊進(jìn)行開發(fā),DDD 的一個領(lǐng)域模型也是建議由一個獨立的團(tuán)隊負(fù)責(zé)。

所以,微服務(wù)和領(lǐng)域驅(qū)動開發(fā)(DDD)常常會一起提及,在學(xué)習(xí)的時候,也會兩種一起學(xué),互相配合能夠更好地落地。

如果說,微服務(wù)是架構(gòu)風(fēng)格、DDD 是架構(gòu)設(shè)計方法、那么六邊形架構(gòu)就是一種具體的指導(dǎo)編碼的架構(gòu)實踐。

一些資料

VS 的 HexagonalX 擴(kuò)展。

在 VS 中可以安裝六邊形架構(gòu)的擴(kuò)展,安裝后在創(chuàng)建項目時就會多出六邊形架構(gòu)的項目類型可供選擇。

幾個 GitHub 上的示例項目和文章:

https://github.com/alesimoes/hexagonal-clean-architecture。

https://github.com/ivanpaulovich/clean-architecture-manga。

https://blog.allegro.tech/2020/05/hexagonal-architecture-by-example.html。

責(zé)任編輯:姜華 來源: 不止dotNET
相關(guān)推薦

2017-02-21 17:25:51

架構(gòu)六邊形架構(gòu)數(shù)據(jù)庫

2020-04-02 13:44:57

架構(gòu)Netflix數(shù)據(jù)

2023-08-06 23:31:36

架構(gòu)系統(tǒng)RPC

2019-12-16 08:08:39

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

2023-12-13 10:06:28

六邊形架構(gòu)系統(tǒng)測試

2022-12-28 07:48:40

六邊形動畫CSS

2023-04-14 08:00:00

架構(gòu)測試開發(fā)

2023-10-30 10:12:20

2024-04-17 08:06:41

六邊形洋蔥架構(gòu)領(lǐng)域

2025-01-17 11:38:10

2021-08-29 18:32:18

CSS

2025-02-24 07:39:53

2017-06-08 10:33:42

軟件開發(fā)前后端架構(gòu)

2022-11-08 08:00:00

開發(fā)Uber數(shù)據(jù)庫

2023-09-08 18:37:34

HarmonyOS

2025-09-05 09:07:00

點贊
收藏

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

一区二区三区|亚洲午夜| 国产69精品久久久久9| 99福利在线观看| av中文天堂在线| 国产一区二区精品久久91| 欧美精品福利在线| 免费看91的网站| 亚洲精品在线a| 在线看不卡av| 国产av熟女一区二区三区| 免费国产在线观看| 国产精品99久| 国产精品视频久久| 国产一级免费观看| 日韩欧美网站| 亚洲精品久久久久久久久久久 | 欧美69xxx| 丁香激情综合五月| 国产精品美女视频网站| 国产91av视频| 亚洲人体av| 亚洲天堂视频在线观看| 国产伦理在线观看| 亚洲精品一区av| 一本色道久久综合精品竹菊| 免费看日b视频| 尤物网址在线观看| 久久伊人蜜桃av一区二区| 亚洲最大福利网站| 一区二区视频免费| 久久婷婷久久| 91av在线播放| 懂色av.com| 欧美日本在线| 久久亚洲一区二区三区四区五区高| 三级网站在线免费观看| 欧美激情99| 欧美精品一区二区三区久久久| 国产无遮挡猛进猛出免费软件| 一级毛片久久久| 亚洲高清不卡在线| 黑人巨茎大战欧美白妇| 免费av在线网址| 国产日产欧产精品推荐色| 国产一区二区在线观看免费播放| 国产伦精品一区二区三区四区| 视频一区欧美精品| 88xx成人精品| 香蕉免费毛片视频| 精品99视频| 欧美插天视频在线播放| 刘亦菲国产毛片bd| 欧洲福利电影| 在线观看精品自拍私拍| 久久久久久久久久久久| 国产精品一区二区av交换| 日韩av资源在线播放| 中文字幕在线国产| 亚洲成人五区| 精品国产91乱码一区二区三区| 亚洲丝袜在线观看| 国产在线不卡一区二区三区| 欧美精品久久久久久久多人混战 | 精品亚洲成a人在线观看| 国产精品久久二区| 中文亚洲av片在线观看| 奇米色一区二区| 成人国产精品一区二区| 91麻豆国产在线| 国产一区在线视频| 97国产超碰| 性xxxx视频播放免费| 91视频免费观看| 欧美自拍资源在线| 免费观看在线午夜影视| 亚洲欧美日韩国产手机在线| 亚洲一区3d动漫同人无遮挡 | 综合在线一区| 欧美肥婆姓交大片| 日韩女优在线观看| 欧美一级一区| 成人午夜激情网| 好吊视频一二三区| 国产日本一区二区| 在线成人性视频| 羞羞的视频在线观看| 欧美日韩免费观看中文| 99视频在线视频| 136福利精品导航| 国产视频精品久久久| 欧美自拍偷拍网| 欧美日韩久久| 国产精品av在线| 午夜久久久久久久久久| 91麻豆免费观看| 综合一区中文字幕| 蜜桃视频在线网站| 欧美系列在线观看| 美女黄色一级视频| 欧美亚洲国产精品久久| 欧美疯狂性受xxxxx另类| 欧美一级片免费在线观看| 麻豆精品视频在线观看视频| 国产另类第一区| 天堂а√在线官网| 欧美日韩国内自拍| 天天爽夜夜爽视频| 欧美三级美国一级| 久久久久久久亚洲精品| 中文字幕人妻色偷偷久久| av欧美精品.com| 黑人巨大国产9丨视频| 亚洲男人av| 日韩欧美二区三区| 91免费在线看片| 国产亚洲精品久久久久婷婷瑜伽| 成人亚洲激情网| 黄色电影免费在线看| 一区二区不卡在线视频 午夜欧美不卡在| 免费日韩中文字幕| 久久草在线视频| 欧美成人激情视频| 伊人免费在线观看| 国产日韩欧美在线一区| 精品一区二区中文字幕| 哺乳挤奶一区二区三区免费看| 日韩一区二区三区在线播放| 欧美日韩综合一区二区三区| 粉嫩在线一区二区三区视频| 一区二区免费在线视频| 8av国产精品爽爽ⅴa在线观看| 亚洲电影中文字幕| 欧美成人精品一区二区免费看片| 麻豆视频观看网址久久| 欧美主播一区二区三区美女 久久精品人 | 国产精品福利电影| 国产女主播一区| 成人免费观看视频在线观看| 欧美黄色影院| 91国内在线视频| 无码国产伦一区二区三区视频| 一区二区激情小说| 9191在线视频| 欧美激情1区| 97人人干人人| 欧美aaaxxxx做受视频| 日韩一卡二卡三卡四卡| 中文字幕另类日韩欧美亚洲嫩草| 久久99九九99精品| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 韩国成人在线| 国产亚洲欧美日韩美女| 中文字幕久久久久| 中文字幕在线一区免费| 中文字幕丰满乱码| 香蕉精品视频在线观看| 亚洲free嫩bbb| 日韩电影免费观看| 亚洲国产精品国自产拍av秋霞| 国产乡下妇女做爰| 91蜜桃免费观看视频| 国产a视频免费观看| 国产精品一线天粉嫩av| 国产精品久久久久久久久久久新郎 | 国语自产精品视频在线看抢先版结局| 在线视频一区二区| 91在线观看喷潮| 亚洲黄一区二区三区| 香蕉网在线视频| 一本久久综合| 日韩av图片| 亚洲男女网站| 久久久欧美一区二区| 日本精品专区| 欧美日韩一区中文字幕| 欧美成人黄色网| 成人免费的视频| 一本久道综合色婷婷五月| 成人激情在线| av一区观看| 欧美最新精品| 操人视频在线观看欧美| 五月色婷婷综合| 欧美在线观看一区二区| 日韩欧美综合视频| 久久只精品国产| 视频免费1区二区三区| 黑人一区二区三区四区五区| 欧美日韩在线观看一区二区三区| 小明成人免费视频一区| 欧美大片第1页| 黄色av免费在线观看| 欧美一区二区三区在线看| 三级黄色在线视频| 国产精品国产成人国产三级| 亚洲麻豆一区二区三区| 日韩av在线发布| 国产欧美久久久久| 精品国产中文字幕第一页| 99国精产品一二二线| 亚洲承认视频| 久久久久久久久亚洲| caoporn国产精品免费视频| 亚洲第一视频网| 91精品在线视频观看| 狠狠色狠狠色综合日日五| 国产美女久久久久久| 久久九九国产精品| 亚洲美女高潮久久久| 美国三级日本三级久久99| 日本a在线免费观看| 999久久久亚洲| 免费国产在线精品一区二区三区| 欧美一级大片在线视频| 国产精品精品视频| 樱桃视频成人在线观看| 欧美激情视频一区二区| 秋霞午夜在线观看| 亚洲欧美国产精品久久久久久久 | 伊人影院中文字幕| 欧美日韩一区二区精品| 色在线观看视频| 国产精品毛片久久久久久 | 国产精品初高中害羞小美女文| 三级视频网站在线观看| 国产成人综合在线播放| 天天摸天天舔天天操| 日本aⅴ亚洲精品中文乱码| 人妻熟妇乱又伦精品视频| 国产精品久久| 最新av网址在线观看| 国产精品成久久久久| 亚洲不卡一卡2卡三卡4卡5卡精品| 婷婷综合国产| 亚洲xxx自由成熟| 国产精品视频一区二区三区| 国产日产亚洲精品| 福利精品在线| 国产精品入口尤物| 成人在线观看免费播放| 国产精品久久久久久av福利| 国产综合色在线观看| 国产精品久久久久久网站| 中文字幕日本一区二区| 国产成人免费av| 国产成人精品一区二区三区视频| 国产97在线播放| 成人网ww555视频免费看| 国产精品国产三级国产专播精品人| 国产精品av一区二区三区 | 成人性生活视频免费看| 狠狠88综合久久久久综合网| 日本精品久久久久久久久久| 黑丝一区二区| 国产高清精品在线观看| 久热精品视频| www.久久91| 国产一区二区精品久久99| 一二三区视频在线观看| 成人视屏免费看| 深爱五月激情网| 国产亚洲欧美激情| 国产传媒在线看| 亚洲天堂网中文字| 免看一级a毛片一片成人不卡| 亚洲一区二区中文在线| 日本一级一片免费视频| 色综合久久综合中文综合网| 伊人久久久久久久久久久久| 欧美日韩一区二区在线视频| 国产aⅴ爽av久久久久成人| 亚洲成人激情图| 黄色软件在线| 久久国产精品视频| av中文字幕在线观看第一页| 日产精品99久久久久久| 欧美a一级片| 懂色中文一区二区三区在线视频| 日韩三区视频| 夜夜爽www精品| 国产综合视频| 五月天婷婷激情视频| 国产综合一区二区| 中文字幕乱视频| 亚洲国产精品国自产拍av| 久久久久久视频| 欧美日韩一区二区三区| 国产一区二区女内射| 精品成人佐山爱一区二区| 黄色片在线播放| 欧美国产高跟鞋裸体秀xxxhd| 色香欲www7777综合网| 91久久精品国产| 外国成人在线视频| 成人性做爰片免费视频| 奶水喷射视频一区| 丰满饥渴老女人hd| 久久久99精品免费观看| 久久久久久久国产精品毛片| 91久久国产最好的精华液| 精品国自产在线观看| 一区二区欧美在线| bl在线肉h视频大尺度| 国产日韩av在线播放| 亚洲激情播播| 久久精品xxx| 久久99久久99小草精品免视看| 国产夫妻性爱视频| 一区二区三区四区蜜桃| 一本久道久久综合无码中文| 日韩国产精品一区| 日韩另类在线| 91在线网站视频| 欧美日韩有码| 国产精品亚洲αv天堂无码| 懂色av噜噜一区二区三区av| 视频国产一区二区| 色88888久久久久久影院野外| 黄色成人一级片| 欧美精品在线视频观看| 国产精品4hu.www| 日韩欧美亚洲在线| 性色av一区二区怡红| 成年人小视频在线观看| 一区二区激情视频| 国产黄色美女视频| 视频直播国产精品| 国产激情久久| 亚洲精品9999| 日韩和的一区二区| 美女脱光内衣内裤| 色综合天天综合给合国产| 亚州精品国产精品乱码不99按摩| 欧美日韩国产成人在线| 精品精品视频| 国产91porn| 国产成人在线影院| 国产免费一区二区三区四区| 欧美日韩国产综合久久| 成黄免费在线| 国产精品嫩草影院久久久| 国产免费久久| 欧美精品成人网| 国产日韩欧美精品综合| 成年人晚上看的视频| 亚洲色图激情小说| 欧美free嫩15| 亚洲精品国产精品国自产| 青草av.久久免费一区| 99久久久无码国产精品不卡| 欧美日韩一区二区三区四区五区| av在线二区| 国产在线观看精品| 欧美在线亚洲| 亚洲欧美日韩色| 日韩欧美国产免费播放| 国产在线色视频| 国产一区深夜福利| 最新精品国产| yy1111111| 色94色欧美sute亚洲线路一久| 国产乱子伦三级在线播放| 国产精品视频午夜| 亚洲久久久久| 亚洲观看黄色网| 在线欧美日韩精品| 日本中文字幕在线观看| 99久久国产免费免费| 一本一本久久| 91成人精品一区二区| 欧美一区二区三区四区五区| 国内在线免费视频| 欧洲一区二区在线| 紧缚捆绑精品一区二区| 日韩av一区二区在线播放| 亚洲乱亚洲乱妇无码| 青青青国产精品| 亚洲色成人www永久在线观看 | 亚洲播播91| 中国女人做爰视频| 99re免费视频精品全部| 波多野结衣毛片| 蜜臀久久99精品久久久无需会员| 露出调教综合另类| 免费看黄色一级大片| 曰韩精品一区二区| 青青久在线视频| 91在线无精精品一区二区| 国产欧美午夜| 欧美激情精品久久久久久免费| 亚洲国语精品自产拍在线观看| 免费观看成人性生生活片| 天天干天天色天天爽| 97精品国产露脸对白| 91成人国产综合久久精品| 国内揄拍国内精品| 欧美电影《轻佻寡妇》| www.88av| 日韩精品资源二区在线| 亚洲国产尤物|