书籍推荐:领域驱动设计与模式实战

我们在平时的学习中或多或少的接触到一些领域驱动设计(Domain-Driven Design,DDD)这些概念,这些概念也非常抽象,最重要的在国内也没有这方面的优秀书籍或者指导手册。也没有一些典型的Sample提供我们学习DDD。

在DDD领域中,就属Eric Evans大师的“Domain-Driven Design: Tackling Complexity
in the Heart of Software
”和Jimmy Nilsson大师的“Applying
Domain-Driven Design and Patterns
”两本书堪称经典之作。

最近看了“Applying Domain-Driven Design and Patterns”中文版——人民邮电出版的“领域驱动设计与模式实战”这本书,从书中的内容和章节可以体会到Jimmy
Nilsson大师是结合了Eric Evans大师的“Domain-Driven Design: Tackling
Complexity in the Heart of Software
”和面向对象大师Martin Fowler的“Patterns
of Enterprise Application Architecture
”这两本书的理论基础和自己的实践,总结自己多年项目实践心得写在一本书里,从写作手法就可以看出作者的内功极其深厚,把DDD的要点都谈到了,并进一步用自己的代码展示了这些观点。当然了,一本书的确不可能把每个知识点说的很深,Jimmy有时也只是起到“指导”的角色。留给大家的也是“动手探索”或者“Google搜索”一下。

当然了,对于开始学习DDD的人来说,“领域驱动设计与模式实战”这本书还是值得去看看,这本书主要说到了以下内容:

测试驱动开发有下面要点:

Mock Objects

  • Agile Value: decoupled software components must be tested in isolation
  • Mocks, Stubs, TestDoubles, and Fakes
  • Mocks syntax options

TDD

  • Agile Value: consider your design from the perspective of its consumers
  • Intent, methodology, values, and approach

领域驱动设计有下面要点:

DDD

  • Agile Value: solve the problem and then select a technology
  • Entities
  • Value Objects
  • Services
  • Repositories
  • Aggregate Roots
  • Bounded Contexts

最后一部分应用PoEAA,相信大家都品味过Martin Fowler的“Patterns of Enterprise
Application Architecture
”这本书,说实在的,这本书的理论知识太强了,每次读都有不同的体会,Jimmy把这本书里面的一些模式结合DDD在实际项目中实战了一番,从中我们进一步体会到更多的思想。

最后Jimmy介绍了最为经典的ORM框架NHibernate的基本使用方法,从我的角度来说,这个章节感觉说的不怎么好,没有把NHibernate的东西介绍的很完美。对了,这不是一本专门针对NHibernate的书,但是国内到现在还没有一本专门介绍NHibernate的书呢,“领域驱动设计与模式实战”还算是“第一本”。然后作者使用NHibernate在程序中开始实战DDD。

NHibernate

  • Configuration
  • Mapping
  • Query
  • 企业应用
  • DDD

最后这本书带提了SOA、IoC、AOP这些内容。

这本书的每一章节都要仔细的品味,大小标题都起到了画龙点睛的效果,面面俱到。读完之后,我们需要把每一章节进行扩展融入更多的内容。首先还是先学习下ORM框架吧,NHibernate或者EF,再联合这本书慢慢的实现DDD之旅吧。

不过实践DDD,目前与之配合最好的框架是ORM,而ORM中最为经典的是NHibernate,大家学习NHibernate可以参考下我的博客吧。

一本书让我们了解到挺多技术,相信这本书对于架构师或者设计程序架构的或者学习程序架构实在太值了,等没事的时候再仔细读读,再体会体会。

版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。

时间: 2024-08-09 06:21:47

书籍推荐:领域驱动设计与模式实战的相关文章

《领域驱动设计与模式实践》 - 书摘精要

(P5) 技术性的东西变化不定,唯有核心业务才是持久的.当核心业务改变时,模型和软件必须随之改变: (P9) .Net 更好地支持面向对象,它只是更好的工具箱: 把技术看作是助推器,不同的技术可能是比其他技术更好的助推器: (P10) 性能问题常常是由于糟糕的数据库存取代码.数据库结构或其他类似原因造成的: (P12) 事情并不总是一成不变的,要考虑背景: (P13) 除非确实需要优化,否则一定不要提前优化: (P21) 发明框架是很麻烦的,更好的想法是直接获取框架: (P22) 思维比工具重要

如何运用领域驱动设计 - 聚合

原文:如何运用领域驱动设计 - 聚合 目录 概述 何为聚合 演化案例 发现实体关系 开始划分边界吧 选取一个聚合根 通过聚合根保护你的内部对象 聚合的一些特性 通过ID引用 聚合真的是不变的吗 小的聚合 一致性 总结 概述 在前几篇的博文中,我们已经学习到了如何运用实体和值对象.随着我们所在领域的不断深入,领域模型变得逐渐清晰,我们已经建立了足够丰富的实体和值对象.但随着实体和值对象的数量逐渐增多,它们之间的关系也显得越来越复杂:实体A与实体B存在一对一的关系,实体B又与实体C存在一对多的关系.

如何运用领域驱动设计 - 领域服务

原文:如何运用领域驱动设计 - 领域服务 目录 概述 什么是领域服务 从实际场景下手 更贴近现实 领域服务VS应用服务 扩展上面的需求 最常见的认证授权是领域服务吗 使用领域服务 不要过多的使用领域服务 不要将过多的行为都给了领域服务 总结 小彩蛋 概述 本文将介绍领域驱动设计(DDD)战术模式中另一个非常重要的概念 - 领域服务.在前面两篇博文中,我们已经学习到了什么是值对象和实体,并且能够比较清晰的定位它们自身的行为.但是在某些时候,你会发现某一些业务行为好像不容易落到单个实体或者值对象身上

如何运用领域驱动设计 - 值对象

原文:如何运用领域驱动设计 - 值对象 目录 概述 何为值对象 值对象是基于上下文的 当前上下文的值对象可能是另一个上下文的实体 怎么运用值对象 尽量避免使用基元类型 值对象是内聚并且可以具有行为 来看一个例子 值对象的持久化 总结 概述 作为领域驱动设计战术模式中最为核心的一个部分-值对象.一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一.但是在学习过程中,大家会因为受到传统开发模式的影响,往往很难去运用值对象这一概念,以及在对值对象进行持久化时感到非常的迷惑.本篇文章会从值

[.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现

一.引言 前面介绍的所有专题都是基于经典的领域驱动实现的,然而,领域驱动除了经典的实现外,还可以基于CQRS模式来进行实现.本专题将全面剖析如何基于CQRS模式(Command Query Responsibility Segregation,命令查询职责分离)来实现领域驱动设计. 二.CQRS是什么? 在介绍具体的实现之前,对于之前不了解CQRS的朋友来说,首先第一个问题应该是:什么是CQRS啊?你倒是详细介绍完CQRS后再介绍具体实现啊?既然大家会有这样的问题,所以本专题首先全面介绍下什么是

NET 领域驱动设计实战系列总结

NET 领域驱动设计实战系列总结 一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计和Asp.net 设计模式等书,但是去年的学习仅仅限制于看书,当时看下来感觉,领域驱动设计并没有那么难,并且感觉有些领域驱动设计的内容并没有好的,反而觉得有点华而不实的感觉,所以去年也就放弃了领域驱动设计系列的分享了,但是到今年,在博客园看到还是有很多人写领域驱动的

[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结

一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计和Asp.net 设计模式等书,但是去年的学习仅仅限制于看书,当时看下来感觉,领域驱动设计并没有那么难,并且感觉有些领域驱动设计的内容并没有好的,反而觉得有点华而不实的感觉,所以去年也就放弃了领域驱动设计系列的分享了,但是到今年,在博客园看到还是有很多人写领域驱动的文章,以及介绍了领域驱动设计相关的

.NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)

.NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangqingpei557.blog.51cto.com/1009349/1173006 1.1.疑问 1.1.1.UML何用 1.1.2.领域建模 1.2.模式 1.3.原则 1.4.工具 1.5.过程 1.6.框架 1.7.项

[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店

一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这对于一些刚刚接触领域驱动设计的朋友可能会非常迷茫,从而觉得领域驱动设计很难,很复杂,因为学习中要消化一个整个案例的知识,这样未免很多人消化不了就打退堂鼓,就不继续研究下去了,所以这样也不利于DDD的推广.然而本系列可以说是刚接触领域驱动设计朋友的福音,本系列将结合领域驱动设计的思想来一步步构建一个网