亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是領域驅動設計

發布時間:2021-10-12 10:33:15 來源:億速云 閱讀:184 作者:iii 欄目:編程語言

這篇文章主要介紹“什么是領域驅動設計”,在日常操作中,相信很多人在什么是領域驅動設計問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是領域驅動設計”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

§ 0x01 什么是領域驅動設計

思考: 理解領域domain,就要從業務說起。

軟件設計中常聽到的一個詞是:業務。日常開發中,也有同事會說,要熟悉業務; xxx對業務不熟悉。 業務是什么呢?

業務應該是一個公司或者一個產品獨有的核心活動、流程。 云計算而言:對外提供池化的計算、存儲、網絡能力。淺顯一點的是:虛擬機的全生命周期管理。

領域是指跟業務強相關的那部分知識,流程。

領域驅動的核心思想是,以業務為核心。向上對接應用層(Application),向下對接IO層(Repositroy)。比起傳統的分層模型來說,它的粒度更細,要求更高了。傳統的分層模型在小型軟件場景下可以正常發揮效用,但大部分人去實施時,經常會出現2個問題。

  1. 業務層的邏輯跑到了應用層,應用層非常臃腫;

  2. 業務層的邏輯跑到了驅動層(IO層),導致產品對驅動層的依賴過強,對后續重構維護造成災難性的影響。

§ 0x02 模型

2.1 模型的意義

模型這種知識形式對知識進行了選擇性的簡化和有意的結構化。

領域的核心就是模型。文中對模型的意義進行了定義。這跟大家處理問題時的方法是一樣的,忽略將要矛盾關注主要矛盾。模型大家說的最多的,就是物理模型、數學模型。比如“質點”,現實世界中是不存在的,但這樣的模型對于解釋物理現象,分析物體受力是非常有意義的,沒有質點時,你對一個物體施加一個力,要關心這個力的作用位置,現實世界中作用的位置不同,導致不同的結果。

一個平放的立方塊,對側面靠近底部位置施加一個很大的力,因為力矩的作用,這個立方塊會前后翻轉。不是牛頓第二定律里描述的,它會加速直線向前運行。

什么是領域驅動設計

這里又要提一個抽象。抽象就是建模的手段。通過舍棄一些不必要細節,得到一個反應我們關注問題的東西,這個東西就是模型了。

2.2 模型對于領域的意義

模型是設計實現的總結。

  1. 模型直接影響設計;

  2. 模型是溝通語言;

  3. 模型是濃縮的知識。

思考:

  1. 模型影響設計 模型的完備性是最終衡量設計是否滿足需求的標準,知識的傳遞應該是:需求變動影響模型,模型變動影響設計。技術專家一般不會直接去看代碼判斷你的實現是否有問題,但如果給出了模型,專家可以快速看出你的設計是否存在問題。

  2. 模型是溝通語言 模型是設計編碼溝通的基礎,可以把問題局限在大家都熟悉的一個范圍中,提高溝通的效率。

  3. 模型是濃縮的知識 這一點與2的描述有點重復。感覺可以合在一起。

補充: 模型可以幫助新加入的成員,快速的理解設計。看到很多開源項目都會在文檔中描述設計,但很多項目沒有一個合適的模型定義,導致理解與上手比較困難。

2.3 軟件的核心

軟件的核心是提供為用戶解決領域相關問題的能力。

用白話說,就是為了實現需求。
這部分作者提出了一個比較普遍的問題:大部分編碼人員對于建模技巧和業務知識沒有興趣,這恰恰是實現實現用戶需求最核心的技術要求。 進一步的原因是“技術人員喜歡比較直接的,能提升自己技術水平的問題。”

這個原因有2層意思。一個是普通的心理現象,人都喜歡直接看得見的東西;比如年輕時喜歡說愛情,非誰誰不娶(嫁),但最終面對現實時,還是錢重要。因為愛情是抽象的,錢是具象的可以看得到的。對于建模這種抽象的東西,完全沒有查一個BUG,學習一門新語言來得實在。

另外一個是,當你想跳槽時。你說你會領域建模,可能面試官對于這部分也沒有什么積累,不能判斷出你的技術水平;即使是ta恰好也懂,在面試的時間內也很難考查出你的領域能力有多強。相反,問問一些語言的特性,或者操作系統相關的基礎知識會比較容易判斷你的水平。也就是說抽象的東西沒有市場。

大多數混亂的軟件領域其實是一項充滿樂趣的技術挑戰。 創建一個克服這些復雜性的易懂模型會帶來巨大的成就感。

到此,關于“什么是領域驅動設計”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節
推薦閱讀:
  1. 什么是PHP
  2. 什么是python

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

康保县| 宜春市| 辛集市| 独山县| 拜泉县| 洞头县| 鄄城县| 尉氏县| 保德县| 乐平市| 阿鲁科尔沁旗| 赤壁市| 法库县| 栾城县| 县级市| 澄江县| 阿尔山市| 夏津县| 右玉县| 怀远县| 渭南市| 灌南县| 仁布县| 阿克| 德安县| 仁化县| 双鸭山市| 靖西县| 永胜县| 家居| 介休市| 肇州县| 苏州市| 黄石市| 宁德市| 萝北县| 怀来县| 普宁市| 昌邑市| 怀远县| 南充市|