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