成人免费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技術棧公眾號

主站蜘蛛池模板: 欧美精品导航 | 免费成人国产 | 日韩欧美高清 | 免费精品 | 人人种亚洲 | 草草草草视频 | 久久精品国产清自在天天线 | 老司机精品福利视频 | 欧美极品在线观看 | 日韩精品一区二区三区 | 99综合在线| 亚洲精品中文字幕在线观看 | 精品乱码一区二区 | 天天看逼 | 最新国产精品精品视频 | 国产日韩欧美在线 | 国产色爽 | 综合另类 | 国产亚洲精品一区二区三区 | 日韩欧美在线观看 | 国产福利视频导航 | 久久亚洲一区二区三区四区 | 99re在线 | 国内精品视频在线 | 天堂av中文在线 | 黄色在线免费观看视频 | 国产精久久久久久久妇剪断 | 精品99久久| 日本三级全黄三级三级三级口周 | 韩国精品在线观看 | 日韩成人av在线播放 | 欧美综合一区二区 | 午夜爱爱毛片xxxx视频免费看 | www久久 | 欧美精品一区二区三区在线播放 | 国产一区二区免费电影 | 99精品国产一区二区三区 | 亚洲天堂999 | 亚洲情视频 | 狠狠影院 | 亚洲精品国产电影 |