Martin Fowler的Patterns of Enterprise Application Architecture(0分)

  • 主题发起人 kidneyball
  • 开始时间
K

kidneyball

Unregistered / Unconfirmed
GUEST, unregistred user!
请问这本书在国内出版了没有?
如果没有,我把我翻译的版本贴上来。
 
序言
1999年的春天,我乘机到了芝加哥为ThoughtWorks公司的一个项目作顾问。这是一个正在
迅速扩展中的小型的软件设计公司。而这个项目正是那些充满雄心壮志的企业应用项目之
一:一个后台的房屋租赁系统。基本上这个系统要做的东西是你在签定合同后要做的所有
事情。它必须能够发送帐单,在有人对租用的房产升级时能做适当处理,对没有按时交租
的人进行追讨,还要在有人提早退租时算出准确的费用。这初时听起来并不难,直到你意
识到租赁协议是可以无限的多样化和可怕的复杂。业务“逻辑”很少会符合任何一种逻辑
模式,因为毕竟这是由业务人员写出来寻求商机的。在商业环境中,各种小而临时的变动
可能会对赢得一场交易起决定性的作用。但每一个这样的小变动都会大大增加软件系统的
复杂性。
这种正是能令我感到兴奋的一类事情。怎样把握住所有的这些复杂性,并设计出一个合适
的对象系统使得事情变得更易处理。为这个系统开发一个好的Domain Model(业务模型,
就是一个实例对应一条数据库里记录的对象)是件非常困难,但能带来极大满足感的事。
但这还不是所有的问题。例如,一个业务模型必须持久保存在数据库中,而且正如许多其
他的项目,我们使用的是关系型数据库。我们还必须把这些业务模型连接到一个用户界面,
提供允许远程访问我们的软件的支持,并且把我们的软件与第三方提供的软件包整合起来。
所有的这些东西都运用了一种叫作J2EE的,至今还没有人称得上有真正使用经验的技术。
虽然这个技术在当时非常新,但我们仍然在以往的经验中得到不少好处。我们曾经使用C++,
Smalltalk和CORBA来完成这类事情,而大部分ThoughtWorker里的员工对使用Forte有丰富
的经验。我们脑海中其实已经对关键的架构有所认识,只需要解决如何在J2EE上实现的问题
了。三年之后回望这个系统,它的设计并不完美,但它很成功地经受了时间的考验。
这个例子就是这本书所关注的其中一种情形。这几年来我看过许多的企业应用项目。 这些
项目常常包含了相近的设计思想,这些设计思想被证明是解决那些企业应用程序不可避免要
处理的复杂问题的有效方法。这本书是要作一个初步的尝试,去把这些设计思想抽取出来
作为设计模式。
这本书分成两部分。第一部分是一系列的叙述性章节,它们是一些关于企业应用程序设计
的重要话题。这些章节介绍了各种在企业应用程序架构时会遇到的问题和它们的解决方案。
但是这些叙述性的章节并不会对这些解决方案进行详细的讲解。解决方案的细节将会放到
第二部分,它们被组织成一个个模式。这些模式是用作参考的,我并不希望你从头到尾按
顺序读完它们。我的意图是你能够从头到尾读完在第一部分的叙述性章节,对本书所讲的
东西有一个整体的印象。然后,你就可以根据你的兴趣和需要,对第二部分的模式选择性
地进行稍微深入的研究。可以说,本书是一本短小的叙述书和一本较长的参考书的结合体。
这是一本关于企业应用程序设计的书。企业应用程序涉及到显示,处理和储存大量的往往
是很复杂的数据。企业应用程序的例子包括预约系统,金融系统,供应链系统,和许多为
现代商业而设计系统。企业应用程序会有它们自己特定的挑战和解决方案。它们与嵌入式
系统,控制系统,电信系统,或者桌面生产系统。所以,如果你是从事这些其他领域的开
发人员,那么这本书中并没有你真正想要的东西。(除非你想知道企业应用程序看起来象
什么)。
在开发企业应用中遇到的架构性问题有很多。我恐怕这本书并不会对它们作全面的指导。
在软件开发方面,我是迭代开发的忠实支持者。迭代式开发的核心观念是一旦你加入了对
用户有用的功能,你就应该分发你的软件,就算它还不完整也无所谓。虽然写书和写软件
有着很多不同,但在迭代开发这点上我觉得两者应该是一样的。因此这本书是一个不完整
但(我相信)有用的关于企业应用程序架构的纲要。我在书里将要讲述的主要话题有:
1)企业应用程序的分层
2)怎样构建业务逻辑
3)WEB用户界面的结构
4)怎样把内存模块(一般来说指对象)与关系型数据库联系起来
5)怎样在无状态的环境(stateless environments)里处理会话状态(session state)
6)一些关于分布式的原则
(译注:略去关于本书没有谈到话题的列表)
这本书并不针对某种语言平台。我开始时是在80年代末90年代初时在SMALLTALK,C++,和
CORBA平台上使用这些模式。在90年代末,我开始使用JAVA做更多的工作,并发现这些模式
在早期的JAVA/CORBA系统和后来的基于J2EE的工作中都能很好地应用。最近,我开始使用
微软的.NET平台并发现这些模式仍然适用。而我在ThoughtWorks的同事也把这些模式和他
们以往使用Forte的经验结合起来。我并不能肯定这些模式在所有已有或将来的语言平台上
都有用,但至今为止,这些模式已经被足够的应用实例证明是有用的。
我对大部分的这些模式都提供了例程。我对例程语言的选择是基于我认为哪种语言看起来
能够被大部分的读者理解。JAVA是一个很好的选择。任何能读懂C或C++的人都能读懂JAVA,
但是JAVA比起C++来讲简单很多。基本上大多数的C++程序员能读JAVA代码但反之不然。我
是一个面向对象的顽固党,因此不可避免地会倾向于面向对象的语言。所以大部分例程使
用JAVA。当我正在写这本书的时候,微软开始了完善他们的.NET环境,他们的C#语言有着
许多与JAVA相同的特性。因此某些例程也使用C#编写,虽然,这种做法引入了一些风险,
因为开发者们对.NET环境还没有太多的经验而且关于使用它的许多术语还不够成熟.但即使
你对某种语言或平台了解不深,由于它们都是基于C的语言,因此你如果你读懂它们其中的一
种,你就能读懂其他的。我的目的是使用一种大部分软件开发人员都能读懂的语言,尽管这
种语言不一定是他们平时主要使用的语言或最喜欢的语言。(我对那些喜欢Smalltalk,
Delphi, Visual Basic, Perl, Python, Ruby, COBOL或者任何其他语言的人表示歉意。
我知道你们觉得你在使用一种比JAVA或者C#要好的语言,我能够说的只是:我赞同你们
的看法)
 
在China-pub上没有搜到,估计多半没有出版。
 
本书的读者:
这本书是为开发企业应用程序的程序员,设计师,架构师和那些希望提高他们对这些架构
问题的理解或交流的人而写的。我假定大部分的读者会属于两个类别:一类是那些希望开
发出他们自己的软件来处理这些问题的人,另一类则希望使用现成的工具。对于那些希望
自己开发的人,我的意图是这些模式能给你一个好的开始。在许多方面,你会需要比这些
模式更多的其他东西来达到你的目的,但我的目的是,提供一些在这个领域中领先的技术。
对于使用工具的人,我希望这本书能让你了解一些在封装好的工具内部所发生的事情,而
且能帮助你在这些工具所支持的多种模式中作出选择。你在使用一种“对象-关系数据库”
映射工具的时候仍然需要决定如何才能合乎某种具体情况的需要。阅读一下关于各种模式
的叙述将会对你的决策有所帮助。
还有第三类人:那些希望开发出他们自己的工具来处理这些问题的人。在这里,我要说的第
一件事是请再次小心考虑,是否应该使用现成工具。我曾经看过项目陷入了长时间构建框架
(framework)的劳动之中,但其实这并不是这个项目所关心的事。但如果你仍然决定应该自己
开发工具,那就做吧。这种情况下,你应该要记住这本书中大部分的例程都被故意设计得非
常简单以便理解,而当你在实际应用中,你会发现你需要做大量的工作来处理你面对的大量需
求。
因为模式是对常见问题的一种普遍的解决方案,因此很可能你已经遇到过它们中的某些模式。
如果你曾经在企业应用领域工作过一段时间,你可能会对它们中的大部分有所了解。我并不
认为在这本书中有任何新的东西。实际上,我觉得恰恰相反,这是一本关于旧点子的书(编程
这个行业发展得太快了)。如果你对这些技术非常熟悉,我希望你还是会喜欢上这本书,因
为它帮助你向其他人交流和传授这些技术。模式的一个重要作用就是致力于建立一套标准的
词汇,这样你就能说“这个类是一个Remote Facade”,而其他设计者能明白你在说什么。
 
wow!怎么没有人注意!!
to kidneyball,看来o/r mapping及persistence framework的 whitebook后,
我准备学习这里面的模式。请快把你翻译的文章贴上来呀!
另外,英文版怎么在网上可以找到?或者你手上有可以email一份给我?
edwinyeah@21cn.com
 
to kidneyball,
这本书有电子版本吗,如果有,可以从哪里下载?
 
我手上只有英文版。有兴趣的话我可以给你EMAIL一份
 
to kidneyball:
我已经找到了英文版的电子书了,但是看起来比较费力。你前面翻译得很好,会继续下去吗?如果出了新的译文,请通知我。一定捧场!!!
 
TO kidneyball:
给我EMAIL一份吧,我的邮箱是:wangxian.111@163.com
谢谢!
 
me mjshmay@163.com thanks.
 
Martin Fow鐨勪功锛岃兘鍚︿篃缁欐垜鍙戜竴浠姐
 
你译得真好,如果你把它译完出版,我第一个支持你!
我对此书相当感兴趣,有电子版给我一份:ZENGDOU@163。COM
先谢谢你!
 
To:
Kidneyball:给我EMAIL一份,
xjc1137@126.com thanks.
 
这本书什么时间出中文版啊?
我买了影印版的,看得好累!
 
不是据说UMLChina在译吗?期待中。。。。[:D]
上面要书的朋友,我手上的版本是用WEBZIP下载,杂七杂八的东西混在一起,都打包的话有4M多。现在网上不难找到这本书的英文版了。例如http://techtop.vicp.net:8080/proxy/
有兴趣的可以去下
 

Similar threads

回复
0
查看
473
不得闲
回复
0
查看
573
不得闲
回复
0
查看
853
不得闲
顶部