企业应用架构模式
2010-4
机械工业
Martin Fowler
363
王怀民,周斌
无
“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。” —Christopher Alexander 本书是面向对象大师Martin Fowler继《Analysis Patterns》、《UML Distilled》、《Planning Extreme Programming》、《Refactoring》之后的又一力作。 “温故而知新”。Fowler在本书中再次向我们证明了《礼记》中这句古训的震撼力—他在回头审视自己及同仁多年来从事企业应用开发的经验和教训后,归纳总结了40多种企业应用架构的设计模式。这些模式从不同层次、不同侧面向我们展示了什么是好的企业应用架构?如何设计好的企业应用? 正如作者自己所言,企业应用在某些方面比其他软件(如电信通信软件)复杂得多:纷繁复杂的企业数据、“不合逻辑”的业务规则、变化莫测的用户需求,等等。环顾四周—CORBA、J2EE、.NET—企业应用开发技术可谓“前仆后继、层出不穷”,开发平台的种类之多就更不必说。 招式套路可以千变万化,扎实深厚的“内功”却是始终如一!虽然企业应用涉及的软件技术不断翻新,但是基本的架构及设计思想却没有太多变化。将以前行之有效的设计思路和方法加以适当调整,并应用到当前的问题上,是最高效的做法。在一组专家级合作者的帮助下,Martin将40多种经常出现的解决方案转化成模式,最终融会成这本“内功心法”。在仔细研读、用心揣摩本书之后,希望它能够帮助你应对任何一种企业应用平台,驾驭任何一种企业应用技术—无论是现在的技术还是未来的技术。 熟悉Fowler的读者都知道,这位大师的写作风格可谓是“深入浅出,娓娓道来”。本书也是一样。前8章是关于企业应用的背景知识,如分层架构、Web表现、业务逻辑、数据库映射、并发、会话、分布策略,等等。在此基础上,随后的各章分别对与这些背景知识相关的设计模式进行了详细的介绍。与其他设计模式的书一样,本书从模式的使用场景、解决方案、UML表示等方面予以介绍,详略有致。就连示例的编程语言的选取—Java和C#—也是与他的写作风格一脉相承的。 夜已深,窗外依旧是绵绵不断的早春小雨。让我们酌一杯清茶,一起来品味大师的话,一起来品味“源于实践、指导实践”的苦涩与甘甜— “模式的关键点是它们源于实践。必须观察人们的工作过程,发现其中好的设计,并找出‘这些解决方案的核心’。这不是一个简单的过程,但是一旦发现了某个模式,它将是非常有价值的。对于我来说,价值之一是能够撰写这样一本参考书。你不必通读本书的全部内容,也不必通读任何一本有关模式的书。只需要了解到这些模式都是干什么的、它们解决什么问题、它们是如何解决问题的,就足够了。这样,一旦你碰到类似问题,就可以从书中找出相应的模式。那时,你再深入了解相应的模式也为时不晚。”
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。此外,整本书中还用了大量UML图来进一步阐明有关概念。 本书是为致力于设计和构建企业应用的软件架构师、设计人员和编程人员而写的,同时也可作为高等院校计算机专业及软件学院相关课程的参考教材。
Martin Fowler是一位独立咨询顾问,他运用对象技术解决企业问题已经超过十年。他的顾问领域包括健康管理、金融贸易,以及法人财务。他的客户包括Chrysler,Citibank,UK National Health Service,AndersenConsulting,NetscapeCommunications。此外Fowler也是objects、UML、
译者序 前言 模式列表 引言 第一部分 表 述 第1章 分层 第2章 组织领域逻辑 第3章 映射到关系数据库 第4章 Web表现层 第5章 并发 第6章 会话状态 第7章 分布策略 第8章 通盘考虑 第二部分 模 式 第9章 领域逻辑模式 第10章 数据源架构模式 第11章 对象-关系行为模式 第12章 对象-关系结构模式 第13章 对象-关系元数据映射模式 第14章 Web表现模式 第15章 分布模式 第16章 离线并发模式 第17章 会话状态模式 第18章 基本模式 参考文献
插图:我虽然没有从事过早期批处理系统时期的任何工作,但我认为当时的软件工作人员不会太关注层次的概念,只要编写操作某些文件(ISAM、VSAM等)格式的程序,这就是当时的应用。它不需要层次。20世纪90年代,随着客户/服务器系统的出现,分层的概念更明显了。这样的系统是一种两个层次的系统:客户端包括用户界面和其他应用代码,服务器端通常是关系型数据库。常见的客户端工具如VB、PowerBuilder和Delphi。这些工具使得构建数据密集型应用非常容易。因为它们的用户界面控件通常都是SQL感知的。因此,可以通过将控件拖拽到“设计区域”来建立界面,然后再使用属性表单把控件连接到后台数据库。如果应用仅仅包括关系数据的简单显示和修改,那么这种客户/服务器系统的工作方式非常合适。问题来自领域逻辑:如业务规则、验证、计算等。通常,人们会把它们写在客户端,但是这样很笨拙,并且往往把领域逻辑直接嵌入到用户界面。随着领域逻辑的不断复杂化,这些代码将越来越难以使用。而且,这样做很容易产生冗余代码,这意味着简单的变化都会导致要在很多界面中寻找相似代码。另外一种办法是把这些领域逻辑放到数据库端,作为存储过程。但是,存储过程只提供有限的结构化机制,这将再次导致笨拙的代码。而且,很多人喜欢关系型数据库的原因之一是SQL是一个标准,允许他们更换数据库厂商。尽管真正更换数据库厂商的用户寥寥无几,但还是有很多人希望拥有这种选择,并且没有太大的附加代价。由于存储过程都是数据库厂商私有的,因此普通用户被剥夺了这种选择权。在客户/服务器方式逐渐大众化的同时,面向对象方式开始崛起。面向对象为领域逻辑的问题找到了答案:转到三层架构的系统。在这种方式下,在表现层实现用户界面,在领域层实现领域逻辑,在数据源层存取数据。这种方式使你可以将复杂的领域逻辑从界面代码中抽取出来,单独放到中间层,用对象加以建模和组织。
《企业应用架构模式》:企业应用开发的实践得益于多种新技术的出现,多层的面向对象平台(如Java、.NET)已经日渐平常。这些新工具和新技术有能力构建更强大的企业应用程序,但是在实现上还不太容易。由于开发人员未能充分理解有经验的对象程序开发人员在架构方面的经验和教训.因此企业应用中经常存在一些共同的错误。《企业应用架构模式》就是面向企业应用开发者的,可帮助他们迎接这种艰难挑战。《企业应用架构模式》的作者Ma riin Fowler注意到,尽管技术本身存在变化——从Smalltalk到CORBA,再到。Java和NET,但基本的设计思想并没有太多变化.可以加以适当调整,用来解决那些共同的问题。在一组专家级合作者的帮助下,作者将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。《企业应用架构模式》曾于2002年荣获美国软件开发杂志图书类的生产效率奖和读者选择奖。《企业应用架构模式》涉及两部分内容。第一部分是关于如何开发企业应用的简单介绍。在阅读这部分时.读者可以从头到尾通读,以掌握《企业应用架构模式》的范围。第二部分是《企业应用架构模式》的主体,是关于模式的详细参考手册.每个模式都给出使用方法和实现信息,并配有详细的Java代码或C#代码的示例。此外,整《企业应用架构模式》中还用了大量UML图来进一步阐明有关概念。《企业应用架构模式》主要内容:将企业应用分层组织企业业务逻辑的主要方法在对象和关系数据库之间进行映射的深层次解决方案通过模型一视图一控制器来组织Web表现处理跨多事务的数据的并发问题设计分布式对象接口
无
本书对企业级软件架构过程中的各种模式做了详细的介绍,虽然是以JAVA语言做的示例,但是对分层模式的分析在各种语言的软件开发上面都有很好的借鉴意义
总结了有经验的面向对象的开发人员在架构方面的经验和教训,揭示了企业中常存在的一些共同的错误,介绍了解决方案
书已读完,感觉本书属于地图性质,想要什么进里面找即可,作者的归纳总结能之强令人折服。读过之后,脑中会有一个企业开发的大局观,从某种程度讲,可以做到有的放矢的去架构应用。另外打个广告:我有一个群73607476 希望能在里面与众多同行多多交流。在这个浮躁的社会,能够安心学习的人依然很多,我们并不孤单。
我是学C#的,所以看这本书里的示例代码觉得有些不太好懂,同时书中的插图也很难懂,看不懂图中所表示的具体流程是什么。但我想这应该不是书的原因,而是自己的水平有限,所以这本书看着是非常好的,但不适合新手,尤其是没有接触过架构的新手。
总之,虽然不太好懂,但推荐大家看,毕竟搞程序就是得学一些深一些的东西!
值得一度,会对企业应用开发的架构有一定的了解
java企业应用设计必看的书
很好的一本书。以前做过很多项目,使用了很多编程手法,框架,但一直没有一个好的总结;通过这本书很好的完成了这个工作;使得我对企业架构设计又上了一个新的台阶。
不知道是不是功力不名够还是什么原因,这本书现在暂时看不懂,而且翻译得很晦涩。如果只是讲设计模式的话,还没有国内一个作者的“大话****”写得好!先收起来,以后再看了!
一个程序员,工作两三年后感觉似乎已经达到瓶颈了,很难在已学的东西范围内再有突破,想学习新东西,又一时找不到去学什么。那么请读读这本书。
书上从企业架构的角度讲述了架构的知识,也提及到了需要用到的框架和准备知识。如果对后者的内容足以了解或熟练使用,那么这个程序员已经是高级程序员了。
Martin Fowler出品,必属精品
对学习软件架构来说很不错的一本书,可以时常翻翻!
刚读完第三章,结合自己的项目很有收获。也许这的确是本好书,也许需要感谢译者和审校的UML China没有把这本书翻译烂,但愿后面的章节有同样的收获。
写的比较详细 有深度
买来了解下如何进行系统架构。有点帮助吧
架构师必备
追求进步的程序员都应该来读一下这本书,对做企业级开发的人很有帮助.
这本书在现在看来是比较经典,但是从技术上讲已经出现了太多可以替代的东西。
学习企业级的架构的经典著作,受益匪浅
作架构的必读之作~
好书不用多说,喜欢,搞架构的要读
有一定经验的开发人员都应该读一读的著作!
图书内容与介绍完全一致
大部分东西都是买给家人的,这本事是自己看
学的技术比较零散,一直也不太懂东西是怎么跑起来的,这本书很不错
专业书籍,值得一阅,很具有参考价值,推荐你购买
适合有几年开发经验的程序员阅读.经典推荐,值得珍藏!
我这里的新华书店没货,都寻好几次了;
目前的能力看这个正好,对设计帮助很大。
好书,很有参考价值!~
这本初看起来有些吃力,感觉内容还是不错,相信还是对我很有帮助,不急慢慢啃。
flower出的几本书都被奉为行业经典。
很好啊,这本书
水平提升遇到瓶颈,可以看看这本书。
非常不错的一本书。没事了躺在床上慢慢看。
很满意这本书,可以当工具书看。
整书质量不错,希望内容和书一样。
不知道是不是翻译的问题,有些内容读起来感觉有点变扭,可能读英文原版的更好,更容易理解作者的思路
书已经买到,正在阅读中,挺好的
不过是计算机高手看的呵呵
工作实际中运用真实
权威书籍!不错!
距离出版时间已经很长了,
不过好书却永远不会过时。
书很好,内容有点陈旧,不过对思路很有帮助。
就凭作者就值得购买了
老师指定教材,考试需要,不得不下手。举懂行人的说MS有点老,不太太有用啊
学习中。。。。。。。。。
中国当当的书和百货,还有服务就是好 ok
很好的正版书,我很喜欢,现在天天看
工具书,多理解与实践
这个商品不错翻译的挺到位的,不过要是能把一些关键名词(定义)保留英文就更好了。毕竟是英文原版翻译,有时会不知道在说什么
非常好的一本書,值得一看.
书本不错,还好还好,给同事买的
很好的书,很多东西都能在书上找到
是正版,快递也给力
挺好挺好挺好挺好挺好挺好挺好挺好挺好挺好挺好挺好挺好
快递很快快递很快
还没看完,但真心觉得不错。赞啊
包装很好还没看
我的同事非常喜欢!
架构师必备的书籍
很好,谢谢了
经典书籍,必须推荐~~
没仔细看,不错
无须解释
与想要的东西有点差异
好书需要慢慢品味
Good article.
大家执笔,不错
以前看过一半,早想着买本再读一次,书很好,值得买
送货相当快,书也挺好的
公司购买学习,还可以。
书的印刷质量不错,内容质量也挺好的。
经典之作,必须收藏
刚看了一半。感觉还不错。就是有些地方有些抽象
程序员必读之书啊!
给单位买的,大家都觉得挺赞
福勒的书,本本都是经典
需要仔细阅读一下,开拓自己的思路
对工作3年以上的开发者来讲收获很大
非常经典,绝对要看.
书非常好,很实用。
整体来说还是一本很不错的书,不过感觉还是要有一定的实战经验,否则会很难读懂。
这个就不用多说了,推荐
对数据层的描述很精彩,不过感觉内容有过时了
工作需要,很不错,讲的深入浅出
想看这方面的书,看评价还行就下单的,还不错,能学到东西
目前的程度,看起来有些吃力
书的内容具有引导性,值得一看
不错的书,赞
帮朋友买的,她很喜欢。如获至宝。
书是好书。快递太慢了!!!!!!
对我有很大的启发。
发货很快,物流也很速度,书也不错,正在阅读,给个好评!
至少我看了前面三章是这样,我想这是翻译的水平吧,原本内容是不错的
开阔思路,开拓眼界之好书
经典不用我说了。 这次纸质也不错。 呵呵!
it\'s good
很好,是正版,价格也便宜
为什么制度重要为什么制度重要
真的很不错,棒啊!
书还没看,但没有破页,脱胶的,总体还行。