成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

六邊形架構:管理復雜性的解決方案

開發 測試 系統
六邊形架構是一種架構模式,將外部系統與核心應用程序分隔開來,其思想很簡單,我們從一個六邊形開始。然后

六邊形架構是一種將外部系統與核心應用程序分離的架構模式。

六邊形架構是什么?

六邊形架構是一種架構模式,將外部系統與核心應用程序分隔開來。

其思想很簡單。我們從一個六邊形開始。然后應用端口和適配器,對吧?

六邊形有六個邊。六邊形的形狀本身并沒有特別含義。它只是提供了一種清晰的方式來討論和解釋應用程序的端口、適配器和領域。

這個形狀提供了一種解釋應用程序流程中小塊內容的方式,而不會讓觀眾對整個應用程序的圖景感到不知所措。它本質上限制了設計者一次只設計或解釋小塊容易理解的部分。

從內部開始

應用程序領域位于六邊形的內部。當我們說領域時,我們指的是遵循領域驅動設計(DDD)原則,并且我們的業務邏輯不會泄露到六邊形外部。為了上下文,DDD:

  • 專注于通過定義與業務特定部分相關的模型來解決主要問題。
  • 使用所有團隊成員都能理解的通用語言。
  • 定義了一個邊界上下文,其中封裝了領域模型。

遵循DDD原則,為了本文的目的,我使用以下過程提出了以下領域。

假設我們正在構建一個新的應用程序,允許用戶通過網站將文件上傳到一個中央存儲庫以供共享。

以下是一些基本的應用程序要求:

  • 由經過身份驗證的用戶通過網站上傳文件。
  • 文件是為程序上傳的,或者換句話說是為了某個目的上傳的。
  • 程序/目的是一組預先配置的文件規范,文件必須符合這些規范。
  • 程序規則指定一些內容,比如:— 可以上傳的文件類型— 字段數量— 其他要求,比如加密或壓縮文件— 文件必須符合某些規范才能被接受。
  • 必須授權用戶以上傳特定程序的文件。

返回領域

領域表示應用程序的關鍵業務邏輯,允許用戶將文件上傳到存儲庫以供其他方共享。請注意,以下領域只涵蓋了上傳者、上傳者的授權和要上傳的文件的文件規格。

藍色矩形被稱為實體,它們連同藍色字段一起表示滿足我們功能要求所需的結構。

一個更全面的領域模型可能包括已上傳或已下載文件的下載者和文件配置詳情,以及可能應用的數據質量配置。可以爭論說這可以進一步劃分為子領域,但為了簡潔起見,我們將堅持當前的示例。

從邏輯上講,我們的六邊形現在看起來像這樣:

眾所周知六邊形架構的原則之一是領域不泄露到六邊形外部,也不需要了解外部世界的任何信息。

在這一點上,我們可以從理論上寫出滿足這個應用程序基本要求的代碼,從業務邏輯功能的角度來看,這將是純粹的應用程序代碼開發。然而,這并不能幫助我們太多,因為業務邏輯被包裝在六邊形的外邊界之內。

我們需要一些輸入和輸出,所以現在我們做一些關于我們如何與領域交互的假設。

在最簡單的形式下,這些假設聽起來像這樣:

  • 數據以用戶的請求形式提交,可以是信息請求或上傳文件。(輸入)
  • 這些數據經過驗證、轉換并存儲在某個地方。(輸出)

我們需要與這個領域交互,以便它能夠完成其工作,即授權上傳者、接受文件并檢查文件規格(基于程序/目的)是否有效。

讓我們稍作停頓,因為上述兩個步驟提到了該架構的另一個好處。在這種純粹形式下,可以實現單元測試或測試驅動開發(TDD)。

編寫自動化單元測試可在開發過程中或進行增強時運行,可以減少引入錯誤的風險,提高代碼質量,尤其是如果單元測試作為代碼檢入和部署活動的一部分進行運行(考慮持續集成/持續交付)。

如果你在遵循TDD,你會先在代碼中寫一個單元測試,然后再寫任何功能性代碼。該測試將失敗,因為你尚未編寫任何功能性代碼。然后,你編寫滿足測試的功能性代碼。接著你編寫下一個測試,然后功能性代碼,然后測試,依此類推。

這就是本文的全部內容。現在我們已經了解了什么是六邊形架構,并創建了我們的領域模型,下一篇我們將探討如何連接端口和適配器,使架構能夠開始管理復雜性。

責任編輯:趙寧寧 來源: 小技術君
相關推薦

2017-02-21 17:25:51

架構六邊形架構數據庫

2020-04-02 13:44:57

架構Netflix數據

2023-08-06 23:31:36

架構系統RPC

2019-12-16 08:08:39

六邊形架構分層架構架構

2023-04-14 08:00:00

架構測試開發

2022-12-28 07:48:40

六邊形動畫CSS

2023-11-01 07:41:39

六邊形架構適配器架構

2024-04-17 08:06:41

六邊形洋蔥架構領域

2023-10-30 10:12:20

2021-08-29 18:32:18

CSS

2025-01-17 11:38:10

2025-02-24 07:39:53

2017-06-08 10:33:42

軟件開發前后端架構

2023-09-08 18:37:34

HarmonyOS

2022-11-08 08:00:00

開發Uber數據庫

2021-04-29 15:15:03

網絡配置網絡復雜性網絡

2024-04-02 14:14:52

物聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 91精品久久久久久久久久入口 | 中文字幕 国产 | 精品国产伦一区二区三区观看说明 | 免费大黄视频 | 日韩三区在线 | 久久久久久久久久久久91 | 一级毛片视频在线 | 久久人操 | 日韩av一二三区 | 欧美激情国产日韩精品一区18 | 断背山在线观看 | 超碰97干| 久久综合久久自在自线精品自 | 久久精品国产一区二区电影 | 国产精品福利视频 | 欧美日韩国产一区二区三区不卡 | 蜜桃精品视频在线 | h片在线观看免费 | 国产精品免费高清 | 美女视频一区二区三区 | 久久四虎 | 男人的天堂久久 | 精品国产一区二区国模嫣然 | 色综合久 | 6996成人影院网在线播放 | 波多野结衣中文字幕一区二区三区 | 色综合久久天天综合网 | 成人在线a | www视频在线观看 | 欧美色综合天天久久综合精品 | 欧美成人精品一区二区男人看 | 日韩免费看片 | 日韩精品一区二区三区高清免费 | 国产精品视频免费观看 | 乳色吐息在线观看 | 国产精品福利网站 | 日韩欧美一级精品久久 | 一级欧美 | 国产在线二区 | 粉嫩一区二区三区四区公司1 |