企业应用架构模式(典藏版)

企业应用架构模式(典藏版)
作 者: 马丁·福勒
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  马丁·福勒(Martin Fowler)世界著名软件开发大师,Thoughtworks首席科学家,从事软件开发相关工作30余年,是全球软件架构、敏捷开发、极限编程、设计模式等多个领域的领袖人物。此外,他在面向对象分析与设计、UML、数据库、领域特定语言等领域也有深厚的积累和卓越的贡献。知名作家,著有多部在IT领域影响深远的著作,包括(部分):《分析模式:可复用的对象模型》《UML精粹》《领域特定语言》《NoSQL精粹》《重构:改善既有代码的设计》这些著作每一部都被奉为经典,深受读者欢迎。此外,他还是一名知名的演说家和咨询师,通过演讲和咨询等方式,在全球范围内广泛传播他的经验和思想。

内容简介

本书是一部系统总结企业级软件架构方法、思想和模式的著作,被誉为“软件架构领域最重要的10本书之一”。原书被翻译为葡萄牙语、波兰语、德语、俄语、韩语、日语、简体中文等多种语言,畅销不衰,并曾获得美国《软件开发》杂志颁发的“Jolt生产效率奖”。第一部分(第1~8章)介绍企业应用架构领域需要掌握的关键知识和可能遇到的问题,并给出了这些问题的初步解决方案;第二部分(第9~18章)在对这些解决方案进行细化的同时,总结出了51种实用的软件架构模式,每个模式都详细给出了使用场景、解决方案、UML表示等。这些模式从不同层次、不同侧面展示了什么是好的企业应用架构,以及如何设计好的企业应用架构,不管企业应用开发的技术和平台如何变化,这些模式始终能在企业应用架构中发挥重要的作用,是不可或缺的内功心法。

图书目录

目  录Contents

译者序

前言

模式列表

引言 1

0.1 架构 1

0.2 企业应用 2

0.3 企业应用的种类 4

0.4 关于性能的考虑 5

0.5 模式 7

0.5.1 模式的结构 8

0.5.2 模式的局限性 9

第一部分 表  述

第1章 分层 12

1.1 企业应用中层次的演化 13

1.2 三个基本层次 14

1.3 为各层选择运行环境 16

第2章 组织领域逻辑 18

2.1 抉择 21

2.2 服务层 22

第3章 映射到关系数据库 24

3.1 架构模式 24

3.2 行为问题 28

3.3 读取数据 29

3.4 结构映射模式 30

3.4.1 关系的映射 30

3.4.2 继承 32

3.5 建立映射 34

3.6 使用元数据 35

3.7 数据库连接 36

3.8 其他问题 38

3.9 进一步阅读 38

第4章 Web表示层 39

4.1 视图模式 41

4.2 输入控制器模式 43

4.3 进一步阅读 44

第5章 并发 45

5.1 并发问题 46

5.2 执行语境 47

5.3 隔离与不变性 48

5.4 乐观并发控制和悲观并发控制 48

5.4.1 避免不一致读 49

5.4.2 死锁 50

5.5 事务 51

5.5.1 ACID 52

5.5.2 事务资源 52

5.5.3 减少事务隔离以提高灵活性 53

5.5.4 业务事务和系统事务 54

5.6 离线并发控制的模式 55

5.7 应用服务器并发 56

5.8 进一步阅读 57

第6章 会话状态 58

6.1 无状态的价值 58

6.2 会话状态 59

6.3 存储会话状态的方法 60

第7章 分布策略 63

7.1 分布对象的诱惑 63

7.2 远程接口和本地接口 64

7.3 必须使用分布的情况 65

7.4 关于分布边界 66

7.5 分布接口 67

第8章 通盘考虑 68

8.1 从领域层开始 69

8.2 深入到数据源层 70

8.2.1 事务脚本的数据源 70

8.2.2 表模块的数据源 70

8.2.3 领域模型的数据源 70

8.3 表示层 71

8.4 一些关于具体技术的建议 72

8.4.1 Java和J2EE 72

8.4.2 .NET 73

8.4.3 存储过程 73

8.4.4 Web Services 74

8.5 其他分层方式 74

第二部分 模  式

第9章 领域逻辑模式 78

9.1 事务脚本 78

9.1.1 运行机制 78

9.1.2 使用时机 79

9.1.3 收入确认问题 80

9.1.4 例:收入确认(Java) 81

9.2 领域模型 83

9.2.1 运行机制 84

9.2.2 使用时机 86

9.2.3 进一步阅读 86

9.2.4 例:收入确认(Java) 86

9.3 表模块 90

9.3.1 运行机制 91

9.3.2 使用时机 93

9.3.3 例:基于表模块的收入

确认(C#) 93

9.4 服务层 96

9.4.1 运行机制 97

9.4.2 使用时机 99

9.4.3 进一步阅读 100

9.4.4 例:收入确认(Java) 100

第10章 数据源架构模式 103

10.1 表数据入口 103

10.1.1 运行机制 103

10.1.2 使用时机 104

10.1.3 进一步阅读 105

10.1.4 例:人员入口(C#) 105

10.1.5 例:使用ADO.NET

数据集(C#) 107

10.2 行数据入口 109

10.2.1 运行机制 110

10.2.2 使用时机 110

10.2.3 例:人员记录(Java) 111

10.2.4 例:领域对象的数据

保持器(Java) 114

10.3 活动记录 115

10.3.1 运行机制 115

10.3.2 使用时机 116

10.3.3 例:一个简单的Person类

(Java) 116

10.4 数据映射器 118

10.4.1 运行机制 119

10.4.2 使用时机 122

10.4.3 例:一个简单的数据

映射器(Java) 123

10.4.4 例:分离查找器(Java) 127

10.4.5 例:创建一个空对象

(Java) 130

第11章 对象-关系行为模式 132

11.1 工作单元 132

11.1.1 运行机制 132

11.1.2 使用时机 136

11.1.3 例:使用对象注册的工作

单元(Java) 137

11.2 标识映射 140

11.2.1 运行机制 141

11.2.2 使用时机 143

11.2.3 例:标识映射中的方法

(Java) 143

11.3 延迟加载 144

11.3.1 运作机制 144

11.3.2 使用时机 146

11.3.3 例:延迟初始化(Java) 146

11.3.4 例:虚代理(Java) 147

11.3.5 例:使用值保持器(Java) 148

11.3.6 例:使用重影(C#) 149

第12章 对象-关系结构模式 156

12.1 标识字段 156

12.1.1 工作机制 156

12.1.2 使用时机 159

12.1.3 进一步阅读 160

12.1.4 例:整型键(C#) 160

12.1.5 例:使用键表(Java) 161

12.1.6 例:使用组合键(Java) 163

12.2 外键映射 172

12.2.1 运行机制 173

12.2.2 使用时机 175

12.2.3 例:单值引用(Java) 176

12.2.4 例:多表查询(Java) 178

12.2.5 例:引用集合(C#) 179

12.3 关联表映射 182

12.3.1 运行机制 182

12.3.2 使用时机 183

12.3.3 例:雇员和技能(C#) 183

12.3.4 例:使用直接的SQL

(Java) 186

12.3.5 例:用一次查询查多个

雇员(Java) 189

12.4 依赖映射 193

12.4.1 运行机制 193

12.4.2 使用时机 194

12.4.3 例:唱片和曲目(Java) 195

12.5 嵌入值 197

12.5.1 运行机制 198

12.5.2 使用时机 198

12.5.3 进一步阅读 199

12.5.4 例:简单值对象(Java) 199

12.6 序列化LOB 200

1