企业应用架构模式

Martin Fowler

出版时间

2009-01-01

ISBN

9787115204226

评分

★★★★★

标签

计算机

书籍介绍

随着信息技术的广泛应用,系统需要处理的数据量越来越大,企业级软件开发已经渐成主流,而开发人员面临的困难与挑战也是显而易见的。更糟糕的是,这一领域的资料一直非常缺乏。

本书是软件开发大师Martin Fowler的代表作,采用模式的形式系统总结了业界多年积累的经验,被称为“企业级应用开发领域的圣经”,出版以来一直畅销不衰,至今仍然无可替代。作 者在精彩地阐述了企业应用开发和设计中的核心原则基础上,详细、生动地讲述了51个模式并给出主流平台(Java和.NET)中的应用实例,更分析了许多 相似模式之间的差异,提供了具体运用和选择这些模式的大量经验之谈,使你不仅知其然,更知其所以然。

这是一部软件开发领域不朽的经典,任何一位真正的软件开发人员都不可错过。

AI导读
核心看点
  • 系统总结51个企业级应用开发模式
  • 深入解析领域模型与数据映射策略
  • 提供Java和.NET平台的具体实例
适合谁读
  • 从事企业级软件开发的专业人员
  • 希望提升系统架构设计能力的开发者
  • 对软件设计模式有深入研究需求的读者
读前提醒
  • 部分技术细节可能略显过时,需结合现代框架理解
  • 建议结合具体项目实践,体会模式的应用场景
  • 重点关注模式间的差异及选择依据,知其所以然
读者共识
  • 被誉为企业级应用开发领域的经典圣经
  • 虽部分技术过时,但架构思维依然极具价值
  • 有助于将零散经验系统化,提升设计水平

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "任何对象可能作为远程对象使用时,经常需要一个粗粒度的接口来减少完成某些任务所需要的调用次数。这不仅会影响你的方法调用,同样还会影响你的对象。现在,一个调用中就会包括访问和更改订单及订单的功能,而不会像以前那样分开调用,这会完全影响你的对象结构。你将不得不放弃小粒度对象和小粒度方法带来的清晰意图和小粒度控制所带来的好处。编程变得困难,并且会使生产率下降。"
  • "一个远程外观是一个粗粒度的外观(facade),它建立在大量的细粒度对象之上。所有细粒度对象都没有远程接口,并且远程外观不包括领域逻辑。远程外观所要完成的功能是把粗粒度的方法转换到低层的细粒度对象上。 任何外观都应该是一层薄薄的皮肤并且只负责很小一部分责任。"
  • "远程外观这种模式意味着同步。"
  • "为别人提供服务的接口和使用别人服务的接口存在较大的差别,需要明确区分。这就是表现层和数据层相对于核心的本质差别"
  • "合并了行为和数据的领域的模型。 领域模型衍生出两种风格。简单领域模型看起来和数据库设计很类似,这种设计中几乎每一个数据库表都与一个领域对象对应。而复杂领域模型则与数据库设计不同,它使用继承、策略和其他设计模式,是一张由互联的细粒度对象组成的复杂网络。复杂领域模型更适合复杂的逻辑,但它到数据库的映射比较困难。简单领域模型可以使用活动记录,而复杂领域模型需要使用数据映射器。"
  • "对于任何并发的本质来说,仅仅考虑正确性是不够的,还必须考虑灵活性(即有多少并发活动可以同时进行)。人们常常需要牺牲一些正确性以获取更多的灵活性,这取决于失败的严重性和可能性以及人们对并发处理数据的需求。"
  • "依我们看来,使用每会话一进程有很多可说之处。尽管每会话一进程没有每会话一线程的效率高,但它们有相同的可伸缩性。而且有更好的健壮性——如果某个现成崩溃了,可能会导致整个进程垮掉,但是使用每会话一进程能限制这种破坏。特别是对经验较少的开发者们,用硬件代价来避免处理线程的麻烦(包括修复bug所用的时间和代价)是值得的。事实上,很少有人真正做过性能测试来估算他们在应用中使用每会话一线程和每会话一进程的代价。"
  • "10.4 数据映射器(Data Mapper) 在保持对象和数据库(以及映射器本身)彼此独立的情况下在二者之间移动数据的一个映射层。 对象和关系数据库用来组织数据的机制不同。对象很多部分(如集合和继承)在关系数据库中不存在。当创建一个具有大量业务逻辑的对象模型时,有必要采用这些机制更好地组织它的数据和行为。如此一来便产生了不同的方案,也就是说对象方案和关系方案不相配。 数据映射器时分离内存对象与数据库的一个软件层。其职责时在内存对象与数据库之间传递数据并保持它们彼此独立。有了数据映射器,内存对象甚至不需要知道数据库的存在;它们也不需要SQL接口代码,当然也不需要知道数据库方案。 数据映射器的主"
作者简介
Martin Fowler 享誉世界的软件开发大师,现为著名软件开发咨询公司ThoughtWorks的首席科学家。他在面向对象分析与设计、UML、设计模式、软件开发方法学、 XP、重构等方面都有重要贡献。他更是全球最具影响力的技术作家之一,除本书外,他的《分析模式》、《UML精粹》、《重构》等著作都已经成为经典。
用户评论
a little bit outdated but still awesome
虽然很多模式已经在日常工作中使用到了,但并没有做好总结。这本书起到了一个提纲挈领的作用。
系统设计开发进阶的好书,通俗易懂
需要再次深入阅读
标准读物
细致程度令人惊讶,不仅仅是针对java,对于其他高级语言也有很实用的的价值。 我把AbstractMapper 直接应用到项目中了...
收藏