右军:为张逸《解构领域驱动设计》推荐序
點擊閱讀原文進京東購買
右軍:
領域驅動設計方面的書現在不是太多,而是太少。想必不少讀者受過《領域驅動設計》和《實現領域驅動設計》兩本書的啟蒙。本書是我特別推薦的領域驅動設計方面的技術書,為何特別推薦,且聽下文。
大約在2007年,我第一次讀《領域驅動設計》一書時,如讀天書,主要記住了類似實體、值對象、工廠、倉儲等概念。近年來,隨著微服務的流行,國內對領域驅動設計的研究和實踐愈發多了起來。
我對領域驅動設計的態度是:相對于戰術設計,應該更看重戰略設計。數年前,我醉心于研究領域模型。領域是業務變化中接近不變性的部分,業務包括領域對象、業務邏輯和界面交互3個層次,其中領域對象是最穩定的。2015年我組織領域建模工作坊活動時,用的就是《分析模式:可復用的對象模型》一書中的一個需求場景。2016年我寫了一篇文章,強調了問題域和解決方案域的區分。張逸兄在GitChat上的兩個連載專欄歷時兩年,創作數十萬字,內容之豐滿,關鍵節點探討之深刻,于我之所見,浩瀚領域專家,無出其右者。雖大家都各自奔忙,僅偶有線上問候或者面聊,但皆有受益。本書的成書過程尤其令人欽佩,張逸兄不是直接將專欄調整成書,而是重新組織架構,提煉出自己的方法體系,可以說是推陳出新,自成一家。
張逸兄敢言人之所未言。領域驅動設計有四大不足:領域驅動設計缺乏規范的統一過程,領域驅動設計缺乏與之匹配的需求管理體系,領域驅動設計缺乏規范化的、具有指導意義的架構體系,領域驅動設計的領域建模方法缺乏固化的指導方法。他創造性地提出領域驅動設計統一過程,雖然此方法有無調整空間,一定是要在不斷實踐中去檢驗的,但單就他的這份膽識和專業,足以讓人欽佩。
如果說非要給本書提一點兒意見的話,我覺得本書有點兒厚了。我認為一本好書也要兼顧讀者的情況,最好能達到讓讀者快速上手的學習效果。但張逸兄堅持讓本書以集大成者的面貌出現,洋洋灑灑數十萬字,力求讓其成為一本值得珍藏的技術書。
凡學習,須循序漸進。我建議讀者把面向對象的分析(object-oriented analysis,OOA)、面向對象的設計(object-oriented design,OOD)、統一建模語言(unified modeling language,UML)、模式等相關知識作為閱讀本書的前序內容。《領域驅動設計》一書也特別提到了“復雜性”,有一定的軟件從業經驗的朋友對“復雜性”更感同身受。
每個人心中都有一個哈姆雷特,每一位讀者都可以登臨領域驅動設計的閣樓,從不同的角度或俯瞰、或仰望、或凝視。我之所得:于道,是對限界上下文特別有共鳴的部分,以及問題空間(域)與解空間(域);于術,是作者提出的領域驅動設計的“三大紀律八項注意”,可作為團隊執行作戰任務的紀律規范。其中,“三大紀律”是實施領域驅動設計的準則:
領域專家與開發團隊在一起工作;
領域模型必須遵循統一語言;
時刻堅守兩重分析邊界與四重設計邊界。
信筆至此,茲為張兄推薦。本書精彩之處甚多,留待讀者去發現。祝閱讀愉快!
作者:于君澤(右軍),技術專家,《深入分布式緩存:從原理到實踐》《架構寶典》和《程序員的三門課:技術精進、架構修煉、管理探秘》聯合作者。
???
從架構演進談 DDD 興起的原因以及與微服務的關系
2021-06-30
ThoughtWorks專家:使用 DDD 指導微服務拆分的邏輯
2021-04-15
這 3 種 DDD 分層架構的模式,你掌握了么?
2021-03-30
DDD專家張逸:復雜與架構演進的關系
2021-03-29
滕云:DDD實現之路
2021-03-25
領域驅動設計(DDD)前夜:面向對象思想
2021-03-22
領域驅動設計(DDD):領域和子域
2021-03-18
總結
以上是生活随笔為你收集整理的右军:为张逸《解构领域驱动设计》推荐序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NYOJ 679 贪婪的商店
- 下一篇: 蚂蚁集团技术专家山丘:性能优化的常见模式