• 中國國家企業信息網-中國國家企業新聞網

中國國家企業信息網-中國國家企業新聞網

熱門關鍵詞: as  xxx  拼多多  集美良品  積碳凈 搜索
您現在的位置:主頁 > 產品信息 >

領域驅動設計(DDD)加速企業產品持續演進 民運分子

來源:未知??? ???更新時間:2017-12-27 11:45

領域驅動設計(DDD)加速企業產品持續演進 民運分子

 

隨著微服務的火熱,領域驅動設計(DDD)的架構思想也越來越被企業和研發團隊所重視。 一個典型的例子是,幾乎每一個在嘗試微服務的團隊和產品,都從領域驅動設計(DDD)的實踐當中受益。而領域驅動設計(DDD)的核心訴求就是能夠讓業務架構和系統架構形成綁定關系,從而當我們去響應業務變化調整業務架構時,系統架構的改變是隨之自發的。

近日,2017領域驅動設計中國峰會(2017 DDD China Conference)在北京舉行。這次活動由國內領域驅動設計(DDD)思想和實踐的領軍者——ThoughtWorks的架構咨詢師們組織發起,為國內的領域驅動設計(DDD) 實踐者們提供了一個互相交流、分享自己團隊的成功經驗的機會的平臺,使得領域驅動設計 (DDD)的架構思想能夠在國內被更多人所認知,從而形成更大的規模效應。

何為DDD?

領域驅動設計(DDD)組織架構上實現了面向業務領域的彈性可伸縮,對系統功能和業務場景進行領域抽象,并采用分層設計,使得系統針對業務應用的可擴展性大大增加。同時,更好地完善產品架構,避免了按照功能劃分導致的服務碎片化和相同概念的重復開發工作,讓每個業務以及功能都能平滑落地、快速迭代。同時能夠讓技術和業務化繁為簡,讓開發人員輕松地完成工作,為公司沉淀出可以復用的通用域,積累業務領域深度知識,拓寬個人的認知邊界,成為所屬領域專家。

DDD憑借其強大的多任務處理能力,讓很多工程師重新發現了其價值。在微服務架構實踐中,人們大量地借用了DDD中的概念和技術。比如一個微服務應該對應DDD中的一個限界上下文;在微服務設計中應該首先識別出DDD中的聚合根;還有在微服務之間集成時采用DDD中的防腐層設計等等。可以說DDD和微服務有著天生的默契,程序員在做微服務架構時,總能從領域驅動設計中得到啟發。

每個系統環境都有自己的語言,使用一個獨立實現和接口與其它有界的上下文來交互調用。領域驅動設計(DDD)的最小單元是領域模型(能夠精確反映領域中某一知識元素的載體),通過通用語言,在有界的上下文中實現清晰而明確的收集需求,為理解錯綜復雜的業務領域提供幫助。

ThoughtWorks咨詢和設計總監肖然告訴記者,DDD的想法是讓我們的軟件實現和一個演進的架構模型保持一致,而這個演進的模型來自于我們的業務需求。領域驅動設計(DDD)的核心是建立領域模型,確保業務邏輯都在一個模型中,其最顯著的優點是減少溝通成本,發現潛在需求,加快業務和產品的迭代速度。

業務與架構

DDD思想是關注業務與架構之間的關系,那么業務與架構之間是一種什么關系呢?

ThoughtWorks高級咨詢師余丹妮認為,領域驅動設計強調以業務為核心,對業務領域進行抽象和建模。業務驅動架構的演進發展,同時架構也會反作用于業務。成功的DDD方法運用是貫穿系統的整個生命周期的,這個過程中業務和技術的協作是持續發生的。

應該說,架構是為了解決業務的問題而產生的,沒有了業務,架構就沒有了存在的前提。在解決同一個業務問題的前提下,更高效,更低成本的架構,會淘汰低效,高成本的架構。所以,DDD讓架構更高效,打破了架構和業務之間的隔閡,其流行的意義就在此。

作為領域驅動設計國內最早的一批實踐者,阿里盒馬架構總監張群輝表示,阿里是典型的業務驅動架構,并不會無端地創建一種架構,雖然阿里是一個技術驅動的公司。“阿里會根據業務的變化來關注架構的走向,圍繞商業愿景進行技術創新。DDD就是一種可以選擇的方式,讓業務平臺的效率得到提升,實現業務流程化處理和智能決策。”

眾所周知,盒馬作為阿里巴巴新零售的排頭兵,第一次真正意義上涉入零售行業,創建中國新零售模式下的供應鏈體系,顛覆傳統ERP是盒馬技術最近幾年不停探索的重點。DDD的引入加速了這種愿景的實現。

張群輝表示,阿里對于DDD的引入并沒有強制要求,但是身在盒馬,非常有必須引入DDD。并且盒馬關注供應鏈,DDD的引入有助于業務的迭代演進,架構師團隊可以更好地實現創新,收益非常明顯。

DDD的落地

余丹妮認為,企業引入DDD是一個漸進式的梳理過程,并不是一蹴而就。軟件架構設計的實質是讓系統能夠更快地響應外界業務的變化,并且使得系統能夠持續演進。DDD讓軟件架構設計更完美。

而張群輝認為,一個企業引入DDD對于架構師團隊水平提出了更高的要求,同時企業需要明白DDD需要一個較長時間的投入才會產生效益。“很多時候,DDD的引入與架構師的情懷關系很大,你是否打算將自己的團隊打造成一個DDD化的團隊。”

DDD讓團隊中各個角色(從業務到開發測試)都能夠采用統一的架構語言,從而避免組件劃分過程中的邊界錯位;讓業務架構和系統架構形成綁定關系,從而建立針對業務變化的高響應力架構。

肖然表示,在戰略層面,DDD非常強調針對業務問題的分析和分解,通過識別核心問題域來降低分析的復雜度。在戰術層面,DDD強調通過識別問題域里的不同業務上下文來進行面向業務需求的組件化。最后在實現層面利用成熟的技術模式屏蔽掉技術細節的復雜度。

所以說,通過DDD對復雜的軟件問題進行控制,而一個好的領域模型是控制復雜問題的關鍵。DDD的價值在于提供一種通用的語言,使得領域專家和軟件技術人員聯系在一起,溝通無歧義。

結語

DDD并不是軟件架構設計的唯一選項,但是其在當今時代卻有著非常重要的現實意義。業務與架構的融合是企業進行業務創新的關鍵,DDD則打通了架構與業務之間的“橋梁”,讓業務與功能能夠持續迭代演進,為企業的發展提供了動力。


分享到:
編輯推薦
精彩熱圖
Copyright 2013-2017 中國國家企業信息網 版權所有 如有侵權行為請第一時間聯系刪除 [email protected]
锣鼓生财电子游艺