深入實(shí)踐DDD:以DSL驅(qū)動(dòng)復(fù)雜軟件開發(fā)
本書的第一部分會(huì)帶領(lǐng)讀者從戰(zhàn)術(shù)層面以及戰(zhàn)略層面重溫領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的重要概念,然后進(jìn)一步闡述EricEvans經(jīng)典著作中沒有顯式提出的或者被太多人忽略的但我認(rèn)為對(duì)DDD落地非常重要的若干概念,同時(shí)簡(jiǎn)要介紹從DDD社區(qū)興起的一些軟件架構(gòu)模式。通過第一部分,讀者可以更完整、更深刻地掌握DDD的知識(shí)體系。第二部分闡述如何設(shè)計(jì)一種DDD的DSL,包括這個(gè)DSL的規(guī)范(Specification)支持哪些特性、如何幫助團(tuán)隊(duì)描述領(lǐng)域模型的方方面面、這些特性的選擇基于何種考量等。這種領(lǐng)域?qū)S谜Z言需要一個(gè)名字,我們總不能一直說“我設(shè)計(jì)的DDD的DSL”吧,于是我給它起了一個(gè)名字:DDDML。我認(rèn)為這是一個(gè)很棒的名字。其實(shí)這種語言叫什么并不太重要,重要的是它可以用一種足夠嚴(yán)格的方式描述領(lǐng)域模型。我認(rèn)為目前它在簡(jiǎn)單與復(fù)雜之間取得了不錯(cuò)的平衡。當(dāng)然,其中還有不小改進(jìn)的空間。比如,我很樂意讓它支持更多像“賬務(wù)模式”這樣的分析模式。第三部分介紹如何將“思想照進(jìn)實(shí)現(xiàn)”——通過使用工具將描述領(lǐng)域模型的DSL文檔變成可以運(yùn)行的軟件。這個(gè)過程涉及大量的技術(shù)工具(工具鏈)的設(shè)計(jì)與實(shí)現(xiàn)。只有將這些技術(shù)工具——比如從DSL自動(dòng)生成應(yīng)用的源代碼的模板——實(shí)現(xiàn)出來,才能減輕開發(fā)人員實(shí)踐DDD的負(fù)擔(dān),進(jìn)而提升而不是降低軟件團(tuán)隊(duì)的生產(chǎn)效率。本部分會(huì)介紹這些技術(shù)工具設(shè)計(jì)與實(shí)現(xiàn)的細(xì)節(jié)。
·16.4萬字