精品为您呈现,快乐和您分享!

移动端

收藏本站

网站首页 > 电脑应用 > 教育教学 > 电子阅读
领域驱动设计与模式实战

领域驱动设计与模式实战

大小:63.82M 语言:简体中文

授权:免费软件 区域:国产软件 时间:2024-12-11

平台:Windows10,Windows8,Windows7,WinVista,Win2003,WinXP,Win2000

推荐指数:

应用简介

领域驱动设计与模式实战是一本将企业应用架构模式和领域驱动设计两大名著精髓的实战演练书籍,由瑞典程序员尼尔森(Jimmy Nilsson)编著。全书内容丰富翔实,将Martin Fowler企业应用架构模式和Eric Evans领域驱动设计两部经典名著中的思想精髓以及重构、测试驱动开发等技术融会贯通,并通过大量C#实例加以阐释,跨越了领域模型、数据库与UI层之间的障碍。真实展示了创建高质量的企业级应用架构的全部过程,欢迎有需要的朋友免费下载。

内容介绍

《领域驱动设计与模式实战》全面详细地解释了领域驱动设计、测试驱动开发、依赖注入、持久化、重构、模式等很多基本概念,并以C#和。NET实例为依托,展示了这些概念的实际应用和重要价值。更重要的是,本书还将这些概念整合到一起,为开发人员从头至尾地揭示了完整的开发路线。阅读本书后,读者将能真正掌握这些重要概念,并有效地将它们结合起来,应用到实际开发过程中,适合软件架构师和开发人员阅读。

章节目录

第一部分 背景知识第1章 应重视的价值,也是对过去几年的沉重反思1.1 总体价值1.2 应重视的架构风格1.2.1 焦点之一:模型1.2.2 焦点之二:用例1.2.3 如果重视模型,就可以使用领域模型模式1.2.4 慎重处理数据库1.2.5 领域模型与关系数据库之间的阻抗失配1.2.6 谨慎处理分布式1.2.7 消息传递很重要1.3 对过程的各个组成部分的评价1.3.1 预先架构设计1.3.2 领域驱动设计1.3.3 测试驱动开发1.3.4 重构1.3.5 选择一种还是选择组合1.4 持续集成1.4.1 解决方案(或至少是正确方向上的一大步)1.4.2 从我的组织汲取的教训1.4.3 更多信息1.5 不要忘记运行机制1.5.1 有关何时需要运行机制的一个例子1.5.2 运行机制的一些例子1.5.3 它不仅仅是我们的过错1.6 小结第2章 模式起步2.1 模式概述2.1.1 为什么要学习模式2.1.2 在模式方面要注意哪些事情2.2 设计模式2.3 架构模式2.3.1 示例:层2.3.2 另一个示例:领域模型模式2.4 针对具体应用程序类型的设计模式2.5 领域模式2.6 小结第3章 TDD与重构3.1 TDD3.1.1 TDD流程3.1.2 演示3.1.3 设计效果3.1.4 问题3.1.5 下一个阶段3.2 模拟和桩3.2.1 典型单元测试3.2.2 声明独立性3.2.3 处理困难因素3.2.4 用测试桩替换协作对象3.2.5 用模拟对象替换协作对象3.2.6 设计含义3.2.7 结论3.2.8 更多信息3.3 重构3.4 小结第二部分 应用DDD第4章 新的默认架构4.1 新的默认架构的基础知识4.1.1 从以数据库为中心过渡到以领域模型为中心4.1.2 进一步关注DDD4.1.3 根据DDD进行分层4.2 轮廓4.2.1 领域模型示例的问题/特性4.2.2 逐个处理特性4.2.3 到目前为止的领域模型4.3 初次尝试将UI与领域模型挂接4.3.1 基本目标4.3.2 简单UI的当前焦点4.3.3 为客户列出订单4.3.4 添加订单4.3.5 刚才我们看到了什么4.4 另一个维度4.4.1 领域模型的位置4.4.2 孤立或共享的实例4.4.3 有状态或无状态领域模型实例化4.4.4 领域模型的完整实例化或子集实例化4.5 小结第5章 领域驱动设计进阶5.1 通过简单的TDD实验来精化领域模型5.1.1 从Order和OrderFactory的创建开始5.1.2 一些领域逻辑5.1.3 第二个任务:OrderRepository+OrderNumber5.1.4 重建持久化的实体:如何从外部设置值5.1.5 获取订单列表5.1.6 该到讨论实体的时候了5.1.7 再次回到流程上来5.1.8 总览图5.1.9 建立OrderRepository的伪实现5.1.10 简单讨论一下保存5.1.11 每个订单的总量5.1.12 历史客户信息5.1.13 实例的生命周期5.1.14 订单类型5.1.15 订单的介绍人5.2 连贯接口5.3 小结第6章 准备基础架构6.1 将POCO作为工作方式6.1.1 实体和值对象的PI6.1.2 是否使用PI6.1.3 运行时与编译时PI6.1.4 PI实体/值对象的代价6.1.5 将PI用于存储库6.1.6 单组存储库的代价6.2 对保存场景的处理6.3 建立伪版本机制6.3.1 伪版本机制的更多特性6.3.2 伪版本的实现6.3.3 影响单元测试6.4 数据库测试6.4.1 在每次测试之前重置数据库6.4.2 在测试运行期间保持数据库的状态6.4.3 测试之前重置测试所使用的数据6.4.4 不要忘记不断演变的模式6.4.5 分离单元测试和数据库调用测试6.5 查询6.5.1 单组查询对象6.5.2 单组查询对象的代价6.5.3 将查询定位到哪里6.5.4 再次将聚合作为工具6.5.5 将规格用于查询6.5.6 其他查询选择6.6 小结第7章 应用规则7.1 规则的分类7.2 规则的原则及用法7.2.1 双向规则检查:可选的(可能的)主动检查,必需的(和自动的)被动检查7.2.2 所有状态(即使是错误状态)都应该是可保存的7.2.3 规则应该高效使用7.2.4 规则应该是可配置的,以便添加自定义规则7.2.5 规则应与状态放在一起7.2.6 规则应该具有很高的可测试性7.2.7 系统应阻止我们进入错的状态7.3 开始创建API7.3.1 上下文,上下文,还是上下文7.3.2 数据库约束7.3.3 将规则绑定到与领域有关的转换,还是绑定到与基础架构有关的转换7.3.4 精化原则:所有状态,即使是错误状态,都应该是可保存的7.4 与持久化有关的基本的规则API的需求7.4.1 回到已发现的API问题上7.4.2 问题是什么7.4.3 我们允许了不正确的转换7.4.4 如果忘记检查怎么办7.5 关注与领域有关的规则7.5.1 需要合作的规则7.5.2 使用基于集合的处理方法7.5.3 基于服务的验证7.5.4 在不应该转换时尝试转换7.5.5 业务ID7.5.6 避免问题7.5.7 再次将聚合作为工具7.6 扩展API7.6.1 查询用于设置UI的规则7.6.2 使注入规则成为可能7.7 对实现进行精化7.7.1 一个初步实现7.7.2 创建规则类,离开最不成熟的阶段7.7.3 设置规则列表7.7.4 使用规则列表7.7.5 处理子列表7.7.6 一个API改进7.7.7 自定义7.7.8 为使用者提供元数据7.7.9 是否适合用模式来解决此问题7.7.10 复杂规则又是什么情况7.8 绑定到持久化抽象7.8.1 使验证接口成为可插入的7.8.2 在保存方面实现被动验证的替代解决方案7.8.3 重用映射元数据7.9 使用泛型和匿名方法7.10 其他人都做了什么7.11 小结第三部分 应用PoEAA第8章 用于持久化的基础架构8.1 持久化基础架构的需求8.2 将数据存储到哪里8.2.1 RAM8.2.2 文件系统8.2.3 对象数据库8.2.4 关系数据库8.2.5 使用一个还是多个资源管理器8.2.6 其他因素8.2.7 选择和前进8.3 方法8.3.1 自定义手工编码8.3.2 自定义代码的代码生成8.3.3 元数据映射(对象关系(O/R)映射工具)8.3.4 再次选择8.4 分类8.4.1 领域模型风格8.4.2 映射工具风格8.4.3 起点8.4.4 API焦点8.4.5 查询风格8.4.6 高级数据库支持8.4.7 其他功能8.5 另一个分类:基础架构模式8.5.1 元数据映射:元数据的类型8.5.2 标识字段8.5.3 外键映射8.5.4 嵌入值8.5.5 继承解决方案8.5.6 标识映射8.5.7 操作单元8.5.8 延迟加载/立即加载8.5.9 并发控制8.6 小结第9章 应用NHibernate9.1 为什么使用NHibernate9.2 NHibernate简介9.2.1 准备9.2.2 一些映射元数据9.2.3 一个小的API示例9.2.4 事务9.3 持久化基础架构的需求9.3.1 高级持久化透明9.3.2 持久化实体的生命周期所需的特定特性9.3.3 谨慎处理关系数据库9.4 分类9.4.1 领域模型风格9.4.2 映射工具风格9.4.3 起点9.4.4 API焦点9.4.5 查询语言风格9.4.6 高级数据库支持9.4.7 其他功能9.5 另一种分类:基础架构模式9.5.1 元数据映射:元数据类型9.5.2 标识字段9.5.3 外键映射9.5.4 嵌入值9.5.5 继承解决方案9.5.6 标识映射9.5.7 操作单元9.5.8 延迟加载/立即加载9.5.9 并发性控制9.5.10 额外功能:验证挂钩9.6 NHibernate和DDD9.6.1 程序集概览9.6.2 ISession和存储库9.6.3 ISession、存储库和事务9.6.4 得到了什么结果9.7 小结第四部分 下一步骤第10章 博采其他设计技术10.1 上下文为王10.1.1 层和分区10.1.2 分区的原因10.1.3 限界上下文10.1.4 限界上下文与分区有何关联10.1.5 向上扩展DDD项目10.1.6 为什么对领域模型——SO分区10.2 SOA简介10.2.1 什么是SOA10.2.2 为什么需要SOA10.2.3 SOA有什么不同10.2.4 什么是服务10.2.5 服务中包括什么10.2.6 深入分析4条原则10.2.7 再来看一下什么是服务10.2.8 OO在SOA中的定位10.2.9 客户-服务器和SOA10.2.10 单向异步消息传递10.2.11 SOA如何提高可伸缩性10.2.12 SOA服务的设计10.2.13 服务之间如何交互10.2.14 SOA和不可用的服务10.2.15 复杂的消息传递处理10.2.16 服务的可伸缩性10.2.17 小结10.3 控制反转和依赖注入10.3.1 任何对象都不是孤岛10.3.2 工厂、注册类和服务定位器10.3.3 构造方法依赖注入10.3.4 setter依赖注入10.3.5 控制反转10.3.6 使用了Spring.NET框架的依赖注入10.3.7 利用PicoContainer.NET进行自动装配10.3.8 嵌套容器10.3.9 服务定位器与依赖注入的比较10.3.10 小结10.4 面向方面编程10.4.1 热门话题有哪些10.4.2 AOP术语定义10.4.3 .NET中的AOP10.4.4 小结10.5 小结第11章 关注UI11.1 提前结语11.2 模型-视图-控制器模式11.2.1 示例:Joe的Shoe Shop程序11.2.2 通过适配器简化视图界面11.2.3 将控制器从视图解耦11.2.4 将视图和控制器结合起来11.2.5 是否值得使用MVC11.3 测试驱动的Web窗体11.3.1 背景11.3.2 一个示例11.3.3 领域模型11.3.4 GUI的TDD11.3.5 Web窗体实现11.3.6 小结11.3.7 用NMock创建模拟11.4 映射和包装11.4.1 映射和包装11.4.2 用表示模型来包装领域模型11.4.3 将表示模型映射到领域模型11.4.4 管理关系11.4.5 状态问题11.4.6 最后的想法11.5 小结11.6 结束语第五部分 附录附录A 其他领域模型风格附录B 已讨论的模式的目录

使用说明

1、下载并解压,得出pdf文件

2、如果打不开本文件,请务必下载pdf阅读器

3、安装后,在打开解压得出的pdf文件

4、双击进行阅读

应用截图