領(lǐng)域驅(qū)動設(shè)計重?zé)ㄐ律?/h1> 原創(chuàng)
【51CTO.com原創(chuàng)稿件】領(lǐng)域驅(qū)動設(shè)計(Domain Driven Design,DDD),對于很多人來說還比較陌生,但這其實并不是什么新概念。早在2003年,英國的架構(gòu)師Eric Evans在處理日常工作時,面對著大型的復(fù)雜軟件系統(tǒng),在做系統(tǒng)架構(gòu)設(shè)計的時候,想要嘗試總結(jié)出一套能夠正確地實施面向?qū)ο缶幊痰募軜?gòu)設(shè)計。***他得出的結(jié)論是,不僅僅要面對對象或者編程去做封裝,同時也應(yīng)該讓技術(shù)人員和業(yè)務(wù)人員加強合作,一起協(xié)同設(shè)計架構(gòu)。他圍繞這個設(shè)計概念做了兩層的實踐。
***層實踐是戰(zhàn)略層的實踐,主要解決的是如何識別所要解決的問題中包含的小問題,這些小問題的邊界如何識別。第二層實踐是基于對整個問題的認(rèn)知,也就是如何劃分工作團隊的邊界和系統(tǒng)本身的內(nèi)部模塊的邊界。
領(lǐng)域驅(qū)動設(shè)計的思想、原則與模式有助于提高團隊成員的面向?qū)ο笤O(shè)計能力與架構(gòu)設(shè)計能力,是一套完整而系統(tǒng)的設(shè)計方法。它能帶來從戰(zhàn)略設(shè)計到戰(zhàn)術(shù)設(shè)計的規(guī)范過程,使設(shè)計思路能夠更加清晰,設(shè)計過程更加規(guī)范。領(lǐng)域驅(qū)動設(shè)計尤其善于處理與領(lǐng)域相關(guān)的高復(fù)雜度的業(yè)務(wù)的產(chǎn)品研發(fā),通過它可以建立一個穩(wěn)定的領(lǐng)域模型內(nèi)核,有利于領(lǐng)域知識的傳遞與傳承。領(lǐng)域驅(qū)動設(shè)計強調(diào)團隊與領(lǐng)域?qū)<业暮献?,能夠幫助建立一個溝通良好的團隊組織,構(gòu)建一致的架構(gòu)體系。領(lǐng)域驅(qū)動設(shè)計還善于處理系統(tǒng)架構(gòu)的演進(jìn)設(shè)計。
DDD China:DDD在中國的布道者
可惜的是,對于這樣一個在國外 IT 圈享有盛譽并行之有效的設(shè)計方法學(xué),并不為國內(nèi)大多數(shù)的技術(shù)人員所知,也未曾運用到項目實踐中。直至2014年,云和微服務(wù)時代的到來,給軟件架構(gòu)設(shè)計提出了新的挑戰(zhàn)和機遇,DDD無疑成為了這個時代的優(yōu)秀的架構(gòu)方法。領(lǐng)域驅(qū)動設(shè)計與微服務(wù)架構(gòu)天生匹配,無論是在新項目中設(shè)計微服務(wù)架構(gòu),還是將系統(tǒng)從單體架構(gòu)演進(jìn)到微服務(wù)設(shè)計,都可以遵循領(lǐng)域驅(qū)動設(shè)計的架構(gòu)原則。隨著微服務(wù)架構(gòu)的普及,組織關(guān)注的問題不再是是否選擇微服務(wù),而是如何發(fā)揮微服務(wù)架構(gòu)本真的價值。在基于DDD精心設(shè)計以業(yè)務(wù)為中心的微服務(wù)架構(gòu)后,云平臺部署、容器化、DevOps、CI/CD等將與微服務(wù)架構(gòu)融合協(xié)作,以真正達(dá)到提升業(yè)務(wù)響應(yīng)力的目的,這套完整的體系被稱為Cloud Native。
為了給國內(nèi)的DDD實踐者們提供一個互相交流、分享自己團隊的成功經(jīng)驗的機會的平臺,使DDD的架構(gòu)思想能夠在國內(nèi)被更多人所認(rèn)知,從而形成更大的規(guī)模效應(yīng)。作為國內(nèi)DDD思想和實踐的領(lǐng)軍者——ThoughtWorks發(fā)起了領(lǐng)域驅(qū)動設(shè)計中國峰會。繼***屆領(lǐng)域驅(qū)動設(shè)計中國峰會于2017年成功舉辦之后,第二屆領(lǐng)域驅(qū)動設(shè)計相關(guān)大會——2018領(lǐng)域驅(qū)動設(shè)計中國峰會(2018 DDD China Conference)近日在北京舉行。
演進(jìn)式架構(gòu):持續(xù)推動業(yè)務(wù)創(chuàng)新
全球軟件設(shè)計與定制***企業(yè)ThoughtWorks提出了演進(jìn)式架構(gòu),據(jù)DDD China聯(lián)合發(fā)起人,ThoughtWorks資深咨詢顧問王威介紹,傳統(tǒng)的適應(yīng)性架構(gòu)通過配置系統(tǒng)、或者配置文件來支撐整個系統(tǒng),當(dāng)業(yè)務(wù)改變的時候需要更改配置項,來讓系統(tǒng)適應(yīng)新業(yè)務(wù)流程,此時的開發(fā)和運維是完全分開的。演進(jìn)式架構(gòu)除了技術(shù)、解決方案的維度,還加入了時間的維度,演進(jìn)式架構(gòu)的設(shè)計本身就是支持由于新業(yè)務(wù)不斷出現(xiàn)所帶來的演進(jìn)式問題,是建立在持續(xù)集成、持續(xù)交付、DevOps、基礎(chǔ)設(shè)施即代碼的基礎(chǔ)之上的,與原來的適應(yīng)性架構(gòu)的技術(shù)趨勢生態(tài)不大相同。
DDD China聯(lián)合發(fā)起人,ThoughtWorks資深咨詢顧問王威
“通過自動化的工具和架構(gòu)治理的量化,去保證架構(gòu)演進(jìn)的方向和業(yè)務(wù)演進(jìn)的方向是一致的,且是同步的,從而保障在一段時間范圍內(nèi),架構(gòu)仍然具備對業(yè)務(wù)的快速響應(yīng)。”王威表示。
演進(jìn)式架構(gòu)把原來的架構(gòu)設(shè)計從文檔變成了適應(yīng)函數(shù),讓架構(gòu)師清晰地看到當(dāng)前架構(gòu)的特征,并指出演進(jìn)方向,讓新的架構(gòu)師可以迅速接任原來的工作。所以,對企業(yè)來說,演進(jìn)式架構(gòu)可以減少企業(yè)對特定架構(gòu)師的依賴,有效減少因人員變動而對現(xiàn)有IT架構(gòu)持續(xù)演進(jìn)帶來的負(fù)面影響。
2018 DDD China Conference還為與會者奉獻(xiàn)了三場主題工作坊,在參與感極強的組織形式下,讓企業(yè)管理者、IT治理者以及一線架構(gòu)師共同收獲知識和成長。
據(jù)了解,本次由戴姆勒中國獨家呈現(xiàn)(獨家冠名贊助)的大會邀請到了來自歐洲和北美的DDD的領(lǐng)軍人物,以及國內(nèi)諸多在過去一年當(dāng)中努力實踐DDD的團隊及代表與會,和業(yè)界一起分享DDD理論的***發(fā)展動態(tài)和實踐經(jīng)驗總結(jié)。戴姆勒大中華區(qū)CIO 石峰(Stefan Eberhardt) 也從IT驅(qū)動數(shù)字化變革的角度分享了在客戶需求日新月異的時代背景下,戴姆勒是如何通過自我改革實現(xiàn)“大象轉(zhuǎn)身”,并為消費者提供杰出數(shù)字化產(chǎn)品及服務(wù)的。以及在這一過程中,關(guān)于架構(gòu)的實踐與改變。
談到DDD的發(fā)展趨勢,王威表示,從量上來說,越來越多的企業(yè)在做互聯(lián)網(wǎng)轉(zhuǎn)型,DDD可以幫助企業(yè)更好地去落地自己的架構(gòu),還能適應(yīng)未來的業(yè)務(wù)變化。從深度來說,在世界范圍內(nèi),DDD本身一直在不斷發(fā)展、不斷演進(jìn)。“相信到一年以后,在DDD這個范疇里會出現(xiàn)很多新的概念來和大家交流。”王威表示。
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】