java Fowler 的“企业应用程序架构模式”仍然适用吗?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/692241/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-29 13:24:58  来源:igfitidea点击:

Fowler's "Patterns of Enterprise Application Architecture" still relevant?

javajakarta-eearchitecturepoeaa

提问by Hyman Singleton

I'm thinking of buying Martin Fowler's "Patterns of Enterprise Application Architecture".

我正在考虑购买 Martin Fowler 的“企业应用程序架构模式”。

From what I can see it seems like a great book, an architectural book with bias towards enterprise Java -- just what I need.

从我所见,它似乎是一本好书,一本偏向于企业 Java 的架构书——正是我所需要的。

However, in computer years, it is quite old. 2003 was a long time ago, and things have moved on quite a bit since that time.

然而,在计算机时代,它已经很老了。2003 年是很久以前的事了,从那时起事情已经发生了很大的变化。

So I'm wondering if anyone can tell me: is this book still relevant, and worth the read?

所以我想知道是否有人可以告诉我:这本书仍然具有相关性,值得一读吗?

回答by Mitch Wheat

Yes, it is still very relevant and an excellent resource.

是的,它仍然非常相关并且是一个很好的资源。

回答by mjn

This book, and Eric Evans book about Domain-Driven Design, are my books of the year - every year ;) ...

这本书和Eric Evans 关于领域驱动设计的书,是我的年度最佳书籍 - 每年 ;) ...

回答by John Saunders

It's very relevant. I frequently refer other developers to particular patterns from that book, as links to his site (http://www.martinfowler.com/eaaCatalog/), such as Data Transfer Objectand Service Layer.

这是非常相关的。我经常向其他开发人员推荐那本书中的特定模式,作为到他的站点 ( http://www.martinfowler.com/eaaCatalog/) 的链接,例如数据传输对象服务层

The latter is one I thought I had "invented" until I saw that Fowler had already written about it.

后者是我以为是我“发明”的,直到我看到 Fowler 已经写过它。

回答by James Wiseman

Given that the answers to this question are now three years old, I felt it important to restate the relevance of Martin Fowler's patterns.

鉴于这个问题的答案已经三年了,我觉得有必要重申 Martin Fowler 模式的相关性。

The GOF design patterns book was first published in 1994, and many of its patterns are still considered relevant. We may have come to a deeper understanding of them and produced subtle variants, but they are there as the foundation of any good OO design.

GOF 设计模式书于 1994 年首次出版,其中的许多模式仍然被认为是相关的。我们可能对它们有了更深入的了解并产生了微妙的变体,但它们是任何良好 OO 设计的基础。

Modern languages increasingly implement some of the patterns behind the scenes so that the developer in theory doesn't have to know about them (an example is the Iterator pattern through the yieldstatement in C#). But, the developer is a better one for knowing them.

现代语言越来越多地在幕后实现一些模式,因此理论上开发人员不必了解它们(一个例子是通过yieldC# 中的语句的迭代器模式)。但是,开发人员更好地了解他们。

Moving on the Martin's book - this absolutely is still relevant. Its true that many libraries now support these patterns in the background, once again abstracting them away from the developer, but again they are at the core of enterprise application software development.

继续马丁的书 - 这绝对仍然是相关的。确实,许多库现在在后台支持这些模式,再次将它们从开发人员中抽象出来,但它们又是企业应用软件开发的核心。

They solve problems that occurr again and again, regardless of language, system, or platform.

他们解决一次又一次出现的问题,无论语言、系统或平台如何。

回答by Thomas Owens

It's currently the textbook used at my university'sPrinciples of Information Systems Design course.

它目前是我大学信息系统设计原理课程中使用的教科书。

回答by duffymo

I disagree with the "bias towards Java" statement. Patterns, by their nature, are language-agnostic. They're defined as solutions to common problems. The copy of Fowler's book has examples in both Java and C#, so I can't see where the "bias" comes in. They're the most common object-oriented languages, and he's talking about object-oriented solutions to enterprise problems.

我不同意“对 Java 的偏见”的说法。模式,就其本质而言,是语言不可知的。它们被定义为常见问题的解决方案。Fowler 的书的副本有 Java 和 C# 的例子,所以我看不出“偏见”从何而来。它们是最常见的面向对象语言,他谈论的是面向对象的企业问题解决方案。

The GoF book has examples in Smalltalk and C++. Why are they so "biased" against Java and C#? Hint: the languages didn't exist when that book was written, but the patterns are as relevant as ever.

GoF 书中有 Smalltalk 和 C++ 示例。为什么他们对 Java 和 C# 如此“偏见”?提示:在写这本书时,这些语言还不存在,但这些模式和以往一样重要。

回答by Andy Dent

Absolutely!

绝对地!

The book is a classic. I've just been re-reading it to help with some work on event-driven accounting systems.

这本书是经典。我刚刚重新阅读了它,以帮助完成有关事件驱动的会计系统的一些工作。

Fowler has been revisiting some of the patterns since and you can see his works in progress.

从那以后,福勒一直在重新审视其中的一些模式,您可以看到他正在进行的工作

回答by Dave Sims

Very relevant, and certainly not chained to one language. Witness the upcoming Rails move to Merb, in a very real sense a move from one pattern in POEAA (ActiveRecord) to another (DataMapper).

非常相关,当然不限于一种语言。见证即将到来的 Rails 迁移到 Merb,在非常真实的意义上,从 POEAA (ActiveRecord) 中的一种模式迁移到另一种 (DataMapper)。

Many other concepts, from ORM strategies to session management, are both relevant and language-agnostic. I'm still floored when I read this how vast Fowler's influence is. He didn't invent all of the concepts here, but he certainly codified and put names to these ideas in such an concise and accessible way as to make them common parlance across the industry. Still essential.

许多其他概念,从 ORM 策略到会话管理,都是相关且与语言无关的。当我读到福勒的影响如此之大时,我仍然感到震惊。他并没有发明这里的所有概念,但他确实以简洁易懂的方式将这些想法编纂并命名,以使它们成为整个行业的通用说法。还是必不可少的。

回答by McGovernTheory

Yes the book is still relevant. You can pickup used copies on Amazon if you are worried about its value and sell it through the same channel.

是的,这本书仍然相关。如果您担心它的价值并通过同一渠道出售,您可以在亚马逊上提取使用过的副本。