领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?弗农的这本《实现领域驱动设计》为我们给出了全面的解答。
《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。《实现领域驱动设计》共分为14章,在DDD战略部分,《实现领域驱动设计》向我们讲解了领域、限界上下文、上下文映射图和架构等内容,战术部分包括实体、值对象、领域服务、领域事件、聚合和资源库等内容。一个虚构的案例研究贯穿全书,这对于实例讲解DDD实现来说非常有用。
《实现领域驱动设计》在DDD的思想和实现之间建立起了一座桥梁,架构师和程序员均可阅读,同时也可以作为一本DDD参考书。
弗农编著的这本《实现领域驱动设计》采用一种自顶向下的方式向我们讲述了DDD的战略设计模式和战术编程工具,并使这两者之间自然地衔接起来。Vaughn Vernon向我们展示了如何将DDD实现应用于现代的软件架构,并且强调业务领域的重要性和价值,同时又不失向技术层面的折中考虑。
本书建立在Evic Evans的《领域驱动设计》之上,通过我们所熟知的示例领域向我们讲解实际的DDD实现技术。每种设计原则都有真实的Java例子作为支撑,并且这些例子对于C#程序员来说也适用。所有的Java例子都出自于同一个案例研究:一个大型的基于Scrum的SaaS多租户系统。
作者带领我们超越了“DDD-Lite”的局限,DDD-Lite即是将DDD单纯地作为一套技术工具集来使用。通过讲解限界上下文、上下文映射图和通用语言,作者全面地向我们展示了DDD的“战略设计模式”。通过书中所讲到的技术和例子,我们可以加快软件开发速度,提升软件质量,使我们的软件更具灵活性和可伸缩性,同时更加紧密地与软件的业务目标保持一致。