《企业应用架构模式》读书笔记 (更新……)

《企业应用架构模式》读书笔记

前言
本书分为两个部分。
第一部分是一些叙述性的章节,主要讨论企业级应用程序设计中的一些重要议题。介绍了企业级应用程序架构的各种问题,并给出了大体的解决方案。
第二部分以模式的方式组织成文,是解决方案的细节。这些模式是参考。
作者推荐将第一部分
读完,然后根据兴趣和需求翻阅第二部分的有关章节。
作者是迭代开发的忠实信徒。迭代开发的核心在于只要软件对用户有用,就应当交付,即使这个软件当时并没有完成。

本书讨论的主要议题是:
企业级应用程序的分层
构建领域(业务)逻辑
构建基于 Web 的用户界面
将内存模块(尤其是对象)关联到关系数据库
在无状态环境下处理会话状态
分布原则


引言

0.1 架构
能够统一的两点内容:最高层次的系统分解;系统中不易改变的决定。
全书是关于如何将企业应用组织成不同的层次,以及这些层次如何协同工作。
别的设计方式(管道、过滤器等方式)也有它们的价值。

0.2 企业应用
涉及:
持久化数据。
大量数据。
多人并发访问
大量的数据操作 UI
与各种其他企业应用集成
概念不一致
复杂业务“无逻辑”

0.3 企业应用的种类
企业应用多种多样,不同的问题有不同的解决方案。
选择架构时,应清楚得了解面临的问题,选择合适的设计。
模式如是,工具亦如是。

0.4 关于性能的考虑
很多架构的设计决策和性能有关。可以首先建立系统,然后通过基于测试的优化过程来提高性能。有些架构上的决策对性能的影响,可能是后期优化难于弥补的。
尽量少用远程调用。优化前后应作测量对比。
配置上的重大变化可能使某些性能优化失效。(虚拟机、硬件、数据库等)
(书中的)术语:
  响应时间,系统完成一次外部请求处理所需的时间;
  响应性,系统响应请求的速度;
  等待时间,获得系统任何形式响应的最小时间;
  吞吐率,给定时间内能够处理的请求量;
  性能,吞吐率,或响应时间,由用户决定;

0.5 模式
0.5.1 模式的结构
模式源于实践。
知道如何将它运用于当前的问题。不能盲目使用。
每个模式相对独立,又不彼此孤立。
模式有助于更好的交流。
模式名非常重要,因为模式的目的之一就是为设计者们交流提供一组词汇。
0.5.2 模式的局限性
作者对本书的要求,在于是否有用。不在于全面。
模式只是开始不是结束。所有模式都是不完备的,大家有责任在自己的系统中完善它们。


第一部分

第1章 分层

将系统按照层次分解的好处:
在无须过多了解其他层次的基础上,可以将某一层作为一个有机整体来理解。
可以替换某层的具体实现,只要前后提供的服务相同即可。
可以将层次间的依赖减到最低。
有利于标准化工作。
构建好一个层次后,可以用它为很多上层服务提供支持。
缺陷:
层次并不能封装所有的东西。有时会带来级联修改。
过多的层次会影响性能。

分层架构中最困难的问题是决定建立那些层次以及每一层的职责是什么。

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

1.2 三个基本层次
表现层
领域层
数据源层

1.3 为各层选择运行环境

第2章 组织领域逻辑

第3章 映射到关系数据库

第4章 Web表现层

第5章 并发

第6章 会话状态

第7章 分布策略

第8章 通盘考虑


第二部分

第9章 领域逻辑模式
9.1 事务脚本 (Transcation Script)
9.2 领域模型 (Domain Model)
9.3 表模块 (Table Module)
9.4 服务层 (Service Layer)

第10章 数据源架构模式
10.1 表数据入口 (Table Data Gateway)
10.2 行数据入口 (Row Data Gateway)
10.3 活动记录 (Active Record)
10.4 数据映射器 (Data Mapper)

第11章 对象-关系行为模式
11.1 工作单元 (Unit of Work)
11.2 标识映射 (Identity Map)
11.3 延迟加载 (Lazy Load)

第12章 对象-关系结构模式
12.1 标识域 (Identity Field)
12.2 外键映射 (Foreign Key Mapping)
12.3 关联表映射 (Association Table Mapping)
12.4 依赖映射 (Dependent Mapping)
12.5 嵌入值 (Embedded Value)
12.6 序列化LOB (Serialized LOB)
12.7 单表继承 (Single Table Inheritance)
12.8 类表继承 (Class Table Inheritance)
12.9 具体表继承 (Concrete Table Inheritance)
12.10 继承映射器 (Inheritance Mapper)

第13章 对象-关系元数据映射模式
13.1 元数据映射 (Meatdata Mapping)
13.2 查询对象 (Query Object)
13.3 资源库 (Repository)

第14章 Web表现模式
14.1 模式-视图-控制器 (Model View controller)
14.2 页面控制器 (Page Controller)
14.3 前端控制器 (Front Controller)
14.4 模板视图 (Template View)
14.5 转换视图 (Transform View)
14.6 两步视图 (Two Step View)
14.7 应用控制器 (Application Controller)

第15章 分布模式
15.1 远程外观 (Remote Facade)
15.2 数据传输对象 (Data Transfer Object)

第16章 离线并发模式
16.1 乐观离线锁 (Optimistic Offline Lock)
16.2 悲观离线锁 (Pessimistic Offline Lock)
16.3 粗粒度锁 (Coarse-Grained Lock)
16.4 隐含锁 (Implicit Lock)

第17章 会话状态模式
17.1 客户会话状态 (Client Session State)
17.2 服务器会话状态 (Server Session State)
17.3 数据库会话状态 (Database Session State)

第18章 基本模式
18.1 入口 (Gateway)
18.2 映射器 (Mapper)
18.3 层超类型 (Layer SuperType)
18.4 分离接口 (Separated Interface)
18.5 注册表 (Registry)
18.6 值对象 (Value Object)
18.7 货币 (Money)
18.8 特殊情况 (Special Case)
18.9 插件 (Plugin)
18.10 服务桩 (Service Stub)
18.11 记录集 (Record Set)


(更新……)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值