
文章插圖
寫在前面:要不要DDD網(wǎng)上關(guān)于領(lǐng)域驅(qū)動(dòng)的相關(guān)文章數(shù)不勝數(shù),但是就跟我一個(gè)同事說(shuō)的,具體落地的到底有多少呢?我們說(shuō)領(lǐng)域驅(qū)動(dòng)最核心的就是領(lǐng)域模型,一個(gè)穩(wěn)定的領(lǐng)域模型勝過(guò)千軍萬(wàn)馬,然而在當(dāng)下依然是互聯(lián)網(wǎng)的時(shí)代,業(yè)務(wù)告訴發(fā)展的時(shí)期,一切的產(chǎn)品設(shè)計(jì)和技術(shù)都是服務(wù)于業(yè)務(wù),然而有多少業(yè)務(wù)是隨心所欲閉門造車臨時(shí)方案的情況,我想程序員們應(yīng)該是深有體會(huì) 。于是帶來(lái)一個(gè)問題,業(yè)務(wù)層面如此的不固定,我們?nèi)绾胃鷺I(yè)務(wù)通過(guò)領(lǐng)域建模來(lái)統(tǒng)一語(yǔ)言,更別說(shuō)穩(wěn)定我們的領(lǐng)域模型了(一段時(shí)間范圍內(nèi)的相對(duì)穩(wěn)定) 。同時(shí)在那些不懂技術(shù)的老板眼里,他們只關(guān)注完成系統(tǒng)的開發(fā)通過(guò)時(shí)間點(diǎn)壓榨,哪里管你因?yàn)槭褂昧?DDD 而帶來(lái)的開發(fā)周期和開發(fā)成本的增加,他們只會(huì)認(rèn)為你技術(shù)不行,做這么簡(jiǎn)單的東西要那么久 。好了,吐槽到此為止!
既然沒有多少企業(yè)實(shí)際落地 DDD,那我們還需要 DDD 嗎?
我的答案:需要,我們需要一個(gè)抓手,任何新系統(tǒng)的開發(fā)和老系統(tǒng)的重構(gòu)乃至系統(tǒng)技術(shù)應(yīng)用架構(gòu)或者功能架構(gòu)圖,都需要一個(gè)抓手,一個(gè)切入點(diǎn),一個(gè)可以撬動(dòng)大家思路的武器,包括微服務(wù)的拆分,拆分的理論依據(jù)是什么? by experience ?出于慎重考慮我們需要一個(gè)抓手,因?yàn)?DDD 可能是一個(gè) 。
? 然而雖說(shuō)眾多企業(yè)并沒有實(shí)際落地 DDD ,或許因?yàn)槠鋾唾Y料都過(guò)于高大上,但實(shí)際上我們平時(shí)的工作中都用到了 DDD 的部分理念和方法 。例如聚合,在 DDD 建模種聚合是構(gòu)建領(lǐng)域模型的基礎(chǔ) 。那我們?cè)谌粘<夹g(shù)方案設(shè)計(jì)過(guò)程中多多少少都會(huì)涉及聚合,甚至我們?cè)诋?UML 類圖的時(shí)候聚合就是六種關(guān)系的其中一種 。
? 本篇文章屬于軟實(shí)力的修煉,而修煉內(nèi)功是程序員的基本素養(yǎng) 。
一、 模型領(lǐng)域驅(qū)動(dòng)最核心的莫過(guò)于領(lǐng)域模型,我們先聊一聊什么是模型?
百度百科解釋有很多解釋,我們一一理解理解 。
模型是通過(guò)主觀意識(shí)借助實(shí)體或者虛擬表現(xiàn),構(gòu)成客觀闡述形態(tài)結(jié)構(gòu)的一種表達(dá)目的的物件(物件并不等于物體,不局限于實(shí)體與虛擬、不限于平面與立體)從這里的描述有幾點(diǎn)有必要說(shuō)明,首先模型并不一定是現(xiàn)實(shí)世界真是存在的一個(gè)東西,其次模型的建立渠道是我們的主管意識(shí),也就是我們的大腦經(jīng)過(guò)思考形成的,但不是瞎說(shuō)瞎想,有依據(jù)和道理的 。當(dāng)然我們也可以把客觀世界存在的事物直接定義成我們的模型,而在當(dāng)今 MVC 的開發(fā)模式下,大部分公司大部分程序員都是如此做的也可能是如此想的 。如果軟件開發(fā)都是如此,那么我們確實(shí)是大家嘴里的“農(nóng)民工” 。
另外我們可以得到的一個(gè)信息,模型的范圍很大很廣,甚至不限形式不限地域和空間 。
模型≠商品 。任何物件定義為商品之前的研發(fā)過(guò)程中形態(tài)均為模型,當(dāng)定義型號(hào)、規(guī)格并匹配相應(yīng)價(jià)格的時(shí)候,模型將會(huì)以商品形式呈現(xiàn)出來(lái) 。這句話的描述我覺得至關(guān)重要,我們可以理解模型它其實(shí)是一種過(guò)程性的產(chǎn)物,不是結(jié)果的呈現(xiàn),模型本身還比較靠近業(yè)務(wù)或者技術(shù)化,客戶所關(guān)心的是完全商業(yè)化的呈現(xiàn) 。
這就從另一個(gè)角度體現(xiàn)了建模的重要性,我們可以直接做拿來(lái)主義將一個(gè)事物直接映射成模型且一一對(duì)應(yīng),我們也需要做一些深入的思考和沉淀,好好打磨一下我們的模型 。
從廣義上講:如果一件事物能隨著另一件事物的改變而改變,那么此事物就是另一件事物的模型 。模型的作用就是表達(dá)不同概念的性質(zhì),一個(gè)概念可以使很多模型發(fā)生不同程度的改變,但只要很少模型就能表達(dá)出一個(gè)概念的性質(zhì),所以一個(gè)概念可以通過(guò)參考不同的模型從而改變性質(zhì)的表達(dá)形式 。廣義的定義告訴我們模型是變化的,而且不是拘泥于一種形式或者某一個(gè)單一的模型,甚至有時(shí)候非常負(fù)責(zé)的模型才能讓我們理解和明白某一個(gè)定義和概念,所以模型本身又是復(fù)雜的,而建模的過(guò)程又是非常有意思的 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- ppt上的倒計(jì)時(shí)小工具 ppt倒計(jì)時(shí)flash動(dòng)畫
- 手機(jī)掙錢軟件排行榜 開發(fā)app怎么賺錢的
- 微信設(shè)置主題皮膚的方法 qq換膚在哪里設(shè)置
- 精選30個(gè) 女生沒有安全感的昵稱 內(nèi)心沒有安全感的網(wǎng)名
- 讓人一眼就愛上的女生網(wǎng)名 適合長(zhǎng)期不換的網(wǎng)名女生
- 初學(xué)陳氏太極的注意事項(xiàng)
- 太極拳對(duì)人體各部位姿勢(shì)的要求
- 精選38個(gè) 心里涼涼的英文傷感昵稱 最扎心的傷感昵稱英文
- 精選50個(gè) 溫柔唯美的女生游戲名字
- 呆萌可愛的王者榮耀id 不易撞的可愛王者ID女
