内容推荐 本书是一部系统总结企业级软件架构方法、思想和模式的著作,被誉为“软件架构领域最重要的10本书之一”。原书被翻译为葡萄牙语、波兰语、德语、俄语、韩语、日语、简体中文等多种语言,畅销不衰,并曾获得美国《软件开发》杂志颁发的“Jolt生产效率奖”。 第一部分(第1~8章)介绍企业应用架构领域需要掌握的关键知识和可能遇到的问题,并给出了这些问题的初步解决方案;第二部分(第9~18章)在对这些解决方案进行细化的同时,总结出了51种实用的软件架构模式,每个模式都详细给出了使用场景、解决方案、UML表示等。 这些模式从不同层次、不同侧面展示了什么是好的企业应用架构,以及如何设计好的企业应用架构,不管企业应用开发的技术和平台如何变化,这些模式始终能在企业应用架构中发挥重要的作用,是不可或缺的内功心法。 作者简介 马丁·福勒(Marlin Fowler),世界级软件开发大师,ThougritWorks首席科学家。他是一位作家、演说者、咨询师和泛软件开发领域的意见领袖。他致力于改善企业级的软件设计,对优秀的设计以及支撑优秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有卓越贡献,著有《重构:改善既有代码的设计》《分析模式》《领域特定语言》等经典著作。 目录 译者序 前言 模式列表 引言 0.1 架构 0.2 企业应用 0.3 企业应用的种类 0.4 关于性能的考虑 0.5 模式 0.5.1 模式的结构 0.5.2 模式的局限性 第一部分 表述 第1章 分层 1.1 企业应用中层次的演化 1.2 三个基本层次 1.3 为各层选择运行环境 第2章 组织领域逻辑 2.1 抉择 2.2 服务层 第3章 映射到关系数据库 3.1 架构模式 3.2 行为问题 3.3 读取数据 3.4 结构映射模式 3.4.1 关系的映射 3.4.2 继承 3.5 建立映射 3.6 使用元数据 3.7 数据库连接 3.8 其他问题 3.9 进一步阅读 第4章 Web表示层 4.1 视图模式 4.2 输入控制器模式 4.3 进一步阅读 第5章 并发 5.1 并发问题 5.2 执行语境 5.3 隔离与不变性 5.4 乐观并发控制和悲观并发控制 5.4.1 避免不一致读 5.4.2 死锁 5.5 事务 5.5.1 ACID 5.5.2 事务资源 5.5.3 减少事务隔离以提高灵活性 5.5.4 业务事务和系统事务 5.6 离线并发控制的模式 5.7 应用服务器并发 5.8 进一步阅读 第6章 会话状态 6.1 无状态的价值 6.2 会话状态 6.3 存储会话状态的方法 第7章 分布策略 7.1 分布对象的诱惑 7.2 远程接口和本地接口 7.3 必须使用分布的情况 7.4 关于分布边界 7.5 分布接口 第8章 通盘考虑 8.1 从领域层开始 8.2 深入到数据源层 8.2.1 事务脚本的数据源 8.2.2 表模块的数据源 8.2.3 领域模型的数据源 8.3 表示层 8.4 一些关于具体技术的建议 8.4.1 Java和J2EE 8.4.2 .NET 8.4.3 存储过程 8.4.4 Web Services 8.5 其他分层方式 第二部分 模式 第9章 领域逻辑模式 9.1 事务脚本 9.1.1 运行机制 9.1.2 使用时机 9.1.3 收入确认问题 9.1.4 例:收入确认(Java) 9.2 领域模型 9.2.1 运行机制 9.2.2 使用时机 9.2.3 进一步阅读 9.2.4 例:收入确认(Java) 9.3 表模块 9.3.1 运行机制 9.3.2 使用时机 9.3.3 例:基于表模块的收入确认(C#) 9.4 服务层 9.4.1 运行机制 9.4.2 使用时机 9.4.3 进一步阅读 9.4.4 例:收入确认(Java) 第10章 数据源架构模式 10.1 表数据入口 10.1.1 运行机制 10.1.2 使用时机 10.1.3 进一步阅读 10.1.4 例:人员入口(C#) 10.1.5 例:使用ADO.NET数据集(C#) 10.2 行数据入口 10.2.1 运行机制 10.2.2 使用时机 10.2.3 例:人员记录(Java) 10.2.4 例:领域对象的数据保持器(Java) 10.3 活动记录 10.3.1 运行机制 10.3.2 使用时机 10.3.3 例:一个简单的Person类(Java) 10.4 数据映射器 10.4.1 运行机制 10.4.2 使用时机 10.4.3 例:一个简单的数据映射器(Java) 10.4.4 例:分离查找器(Java) 10.4.5 例:创建一个空对象(Java) 第11章 对象-关系行为模式 11.1 工作单元 11.1.1 运行机制 11.1.2 使用时机 11.1.3 例:使用对象注册的工作单元(Java) 11.2 标识映射 11.2.1 运行机制 11.2.2 使用时机 11.2.3 例:标识映射中的方法(Java) 11.3 延迟加载 11.3.1 运作机制 11.3.2 使用时机 11.3.3 例:延迟初始化(Java) 11.3.4 例:虚代理(Java) 11.3.5 例:使用值保持器(Java) 11.3.6 例:使用重影(C#) 第12章 对象-关系结构模式 12.1 标识字段 12.1.1 工作机制 12.1.2 使用时机 12.1.3 进一步阅读 12.1.4 例:整型键(C#) 12.1.5 例:使用键表(Java) 12.1.6 例:使用组合键(Java) 12.2 外键映射 12.2.1 运行机制 12.2.2 使用时机 12.2.3 例:单值引用(Java) 12.2.4 例:多表查询(Java) 12.2.5 例:引用集合(C#) 12.3 关联表映射 12.3.1 运行机制 12.3.2 使用时机 12.3.3 例:雇员和技能(C#) 12.3.4 例:使用直接的SQL(Java) 12.3.5 例:用一次查询查多个雇员(Java) 12.4 依赖映射 12.4.1 运行机制 12.4.2 使用时机 12.4.3 例:唱片和曲目(Java) 12.5 嵌入值 12 |