企业软件中的模式

近年来,描述企业系统开发模式的书籍数量虽然不多,但一直在稳步增长。在这个页面上,我列出了这些模式中最值得注意的目录,以及我对它们之间广泛相互关系的一些想法。

这些作者之间没有正式的组织联系,但我们确实有牢固的非正式联系——经常互相审阅彼此的作品。我们经常想知道是否应该建立一个更正式的组织,但还没有真正集中足够的精力来实现它。仅仅写我们自己的作品就够难的了!

不同的人对模式的用途和有趣之处有不同的期望。我在一篇IEEE 软件专栏中描述了我的观点。

我在这里列出这些目录,因为这些是我至少比较了解的,并且我对此感到满意。我不打算将其作为此领域模式目录的完整列表。

目录

以下是我认为有用的主要目录列表。

企业应用程序架构模式专注于分层架构背景下的企业应用程序架构。主要部分涵盖领域逻辑、Web 展示、数据库交互、脱机并发(由 David Rice 撰写)和分布式。数据库交互是最大的部分,其中包含许多关于对象关系映射问题的模式。
(Fowler)
核心 J2EE 模式Java J2EE 平台背景下的企业应用程序架构模式。虽然这些模式侧重于 J2EE 平台,但它们通常同样适用于其他企业应用程序平台(尽管可能需要调整)。
(Alur、Crupi 和 Malks)
企业集成模式我越来越认为,通过异步消息进行集成是集成不同企业应用程序的最有效方法之一。EIP 是这种方法的基础模式集合。
(Hohpe 和 Woolf)
Microsoft 企业解决方案模式Microsoft 的第一个企业软件模式集合。部分包括关于 Web 展示、部署和分布式系统的模式。
(Trowbridge、Mancini、Quick、Hohpe、Newkirk 和 Lavigne)
Microsoft 数据模式关于数据移动的模式集合:复制和同步。
(Teale、Etx、Kiel 和 Zeitz)
Microsoft 集成模式Microsoft 对集成模式的看法。部分涵盖集成层的策略、系统连接方法以及集成拓扑。
(Trowbridge、Roxburgh、Hohpe、Manolescu 和 Nadhan)
领域驱动设计构建面向对象的领域模型是组织领域逻辑的一种流行方法。它在复杂领域中特别有效。它的缺点是很难做好。这些模式描述了如何思考构建和构建丰富的领域模型,以及如何识别和克服现实世界中的障碍,这些障碍往往会阻止人们运用他们所知道的建模原则。
(Evans)
分析模式看到足够多的领域模型,你会反复看到某些类型的结构。这本书是我试图以模式的形式捕捉这些共性的尝试。在很多方面,它非常需要更新,但基本思想仍然很可靠。如果你发现这些材料有用,请务必查看我在网站上发布的更新补充材料。
(Fowler)
数据模型模式数据模型中的常见模式。由于这些模式是从非常概念化的角度开发的,因此它们对对象建模和数据建模都很有用。
(Hay)
四人帮第一本,也是使用最广泛的模式书籍。这些大多是基本模式,并非专门用于企业软件开发,但企业模式广泛引用它们。
(Gamma、Helm、Johnson 和 Vlissides)
POSA其在架构模式方面的工作尤其有影响力。层(用于企业应用程序)和管道和过滤器(用于消息传递)是许多企业模式工作的基础。
(Buschmann、Meunier、Rohnert、Sommerlad 和 Stal)

企业软件的各个方面

这些目录涵盖了企业软件开发的各个方面。以下是从这些各个方面开始的目录的另一种视图。

企业应用程序架构

企业应用程序是我对特定类别软件系统的称呼:许多企业运行的数据密集型软件系统。另一个,也许更好的名称是信息系统,因为这些系统处理和操作信息。

大多数关于 EAA 的书籍都从将企业应用程序分解为逻辑层开始。这种分层结构然后驱动层内和层之间其他设计决策。因此,模式往往以类似的方式通过层进行组织也就不足为奇了。每个作者都有自己的分层结构,但在分层结构之间存在可识别的相似之处。

人们将企业架构与企业应用程序架构混淆的情况非常普遍。第二个 A 字非常重要。EAA 是关于构建单个应用程序。 企业架构是一种完全不同的东西。

企业应用程序架构模式

从技术独立的角度看待 EAA。

核心 J2EE 模式

这是第一本专注于 EAA 的书籍,并且从 J2EE 平台的背景下进行介绍。

Microsoft 企业解决方案模式

从 .NET 的角度看待 EAA。

企业集成

企业应用程序是相对独立的实体,但要正常运行,它们确实需要协同工作。将独立开发的 EA 拼凑在一起是集成的工作。通常,您需要集成并非为任何集成而设计,更不用说您正在使用的特定集成,或者它们期望使用您没有使用的技术进行集成。

企业集成模式

用于消息传递的模式,作者(和我)认为这是进行集成的最有希望的方式。

Microsoft 集成模式

使用 Microsoft 技术进行集成的策略。

Microsoft 数据模式

用于数据复制和同步的模式,这是两种有价值的集成技术。

领域逻辑

企业应用程序最重要的,但经常被遗忘的方面之一是领域逻辑。这些是业务规则、验证和计算,它们在数据被带入信息系统或由信息系统显示时对其进行操作。对于简单的数据库文件系统,通常很少或没有领域逻辑。但是,对于许多系统来说,通常存在相当复杂的领域逻辑,并且随着业务条件的变化,这种逻辑会定期发生变化。

企业应用程序架构模式

一部分概述了组织领域逻辑的主要模式。

领域驱动设计

详细介绍了使用领域模型:最复杂的领域逻辑模式,也是最适合复杂逻辑的模式。

分析模式

展示领域模型示例的模式。

数据模型模式

更多展示领域示例的模式,从数据建模方法出发。