初读《企业应用架构模式》——阅读笔记1
今天从网上找了好久软件体系架构的书,在一篇前辈的博客中找到了《企业应用架构模式》这本书,为了省钱还是选择电子版,哈哈,附上下载网址,方便看到我博客的小伙伴不用再去辛苦的找地方下载了:http://www.uzzf.com/qudong/126178.html
下面进入正题:作者在前言中介绍了自己和这本书,这本书共分为两个部分,第一部分是类似于叙事的方式,讲述了企业级应用程序设计中的一些重要议题;第二部分是以模式的方式组织成文,多数是一些定义性的内容。
在今天的阅读中,我印象最深的一句话是:“模式只是一个有益的起点,而非最终的解决之道。” 任何情况下都需要做一些工作才能将它们应用到我们的程序中。
简单列举一些模式:
活动记录:包装数据库表或视图中的行、封装数据库访问、并将业务逻辑加到该数据上的对象。
应用控制器:处理屏幕导航和应用流程的集中控制点。
关联表映射:将关联存储方式表形式,并通过外键将之与相关的表链接起来。
类表继承:表示了类的继承层次,每个类都对应一个表。
客户会话状态:将会话状态存储于客户端。
粗粒度锁:用一个锁,将一组相关对象都锁起来。
具体表继承:表示了类的继承层次,层次重大而每一个具体类对应一个表。
数据映射器:由映射器组成的一个层次,他在对象和数据库之间移动数据,并保证它们之间相互独立,映射器之间相互独立。
数据传输对象:在进程间进行数据传递的对象,目的是减少进程间方法调用的次数。
数据库会话状态:将会话状态作为提交的数据存储于数据库中。
依赖映射:让一个类为一个子类进行数据库映射。
领域模型:既包含行为,又包含数据的领域的对象模型。
嵌入值:将一个对象映射到另一个对象的表的多个域中。
外键映射:将对象间的一个关联映射成表间一个外键引用。
前端控制器:处理Web站点钟所有请求的控制器。
入口(Gateway):封装对外部系统或资源进行访问的对象。
……
还有很多模式,就不一一列举了。
这本书还讲了很多,他提到了“架构”一词,被人们赋予很多种定义,又很让人觉得只能意会不能言传,而在作者眼里,架构和他口中的层次相类似,都是涉及企业应用的重要组成部分和希望今早做出的决定。他还讲了关于企业应用和普通的软件,例如电信软件的区别:企业应用在某些方面比电信软件简单——多线程问题没有那么困难;但在有些方面又比电信软件复杂得多——涉及大量数据,而且有很多不合逻辑的业务规则。他还提到了企业应用的种类,举了三个例子,这三个例子在不同方面有不同的难提,因此很难找到很类似的解决方式,也不可能有一个适合于三者的体系架构,因此必须根据自己的了解和知识选择合适的设计。再提到性能方面,架构的设计和性能紧紧相关,我印象最深刻的就是:减少远程的调用。
该书第一章就三个基本层次的架构展开讨论:表现层、领域层和数据层。
表现层:提供服务,显示信息。
领域层:逻辑,系统真正的核心。
数据层:与数据库、消息系统、事务管理器及其他软件包通信。
第二章同样将领域逻辑的组织分为三种主要的模式:事务脚本,领域模型以及表模块。保存领域逻辑最简单的方法是使用事务脚本即从表示层获得输入,进行校验和计算处理,将数据存储到数据库中以及调用其他系统的操作。
第二章还给了一个领域逻辑复杂度的图,用来参考如何选择。
第二章还介绍了服务层,服务层被独立了出来,只有使用领域模型或者表模块的时候才这样细分,因为只是用事务脚本的领域层并不复杂。作者的建议是:如果确实需要,尽可能的缩小服务层,如果不需要,最好让他不存在。
时间短暂,只看了前两章,先记录一下!