Skip to content

Commit e35e095

Browse files
authored
Merge pull request #100 from LLM-Coding/copilot/add-fowler-patterns-anchor
Add Fowler patterns (PEAA) semantic anchor
2 parents 0c52974 + a999fd9 commit e35e095

7 files changed

Lines changed: 204 additions & 56 deletions

File tree

docs/anchors/fowler-patterns.adoc

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
= Patterns of Enterprise Application Architecture (PEAA)
2+
:categories: design-principles
3+
:roles: software-architect, software-developer, team-lead
4+
:proponents: Martin Fowler
5+
:related: domain-driven-design, hexagonal-architecture, clean-architecture
6+
:tags: enterprise, architecture, patterns, design-patterns, orm
7+
8+
[%collapsible]
9+
====
10+
Full Name:: Patterns of Enterprise Application Architecture according to Martin Fowler
11+
12+
Also known as:: Fowler patterns, PEAA patterns, Enterprise patterns
13+
14+
*Core Concepts*:
15+
16+
Domain Logic Patterns:: Transaction Script, Domain Model, Table Module, Service Layer
17+
18+
Data Source Architectural Patterns:: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper
19+
20+
Object-Relational Behavioral Patterns:: Unit of Work, Identity Map, Lazy Load
21+
22+
Object-Relational Structural Patterns:: Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance
23+
24+
Object-Relational Metadata Mapping Patterns:: Metadata Mapping, Query Object, Repository
25+
26+
Web Presentation Patterns:: Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller
27+
28+
Distribution Patterns:: Remote Facade, Data Transfer Object
29+
30+
Offline Concurrency Patterns:: Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock, Implicit Lock
31+
32+
Session State Patterns:: Client Session State, Server Session State, Database Session State
33+
34+
Base Patterns:: Gateway, Mapper, Layer Supertype, Separated Interface, Registry, Value Object, Money, Special Case, Plugin, Service Stub, Record Set
35+
36+
37+
Key Proponent:: Martin Fowler ("Patterns of Enterprise Application Architecture", 2002)
38+
39+
*When to Use*:
40+
41+
* Designing complex enterprise applications with data persistence
42+
* Building layered architectures with clear separation of concerns
43+
* Working with object-relational mapping and database interactions
44+
* Designing web applications with proper presentation layer patterns
45+
* Managing distributed system communication
46+
* Handling concurrency in multi-user enterprise systems
47+
* Creating maintainable and testable enterprise code
48+
49+
*Related Anchors*:
50+
51+
* <<domain-driven-design,Domain-Driven Design>> - Complements PEAA with domain modeling approach
52+
* <<hexagonal-architecture,Hexagonal Architecture>> - Architectural style emphasizing ports and adapters
53+
* <<clean-architecture,Clean Architecture>> - Layered architecture pattern with dependency rules
54+
====
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
= Patterns of Enterprise Application Architecture (PEAA)
2+
:categories: design-principles
3+
:roles: software-architect, software-developer, team-lead
4+
:proponents: Martin Fowler
5+
:related: domain-driven-design, hexagonal-architecture, clean-architecture
6+
:tags: enterprise, architecture, patterns, design-patterns, orm
7+
8+
[%collapsible]
9+
====
10+
Vollständiger Name:: Patterns of Enterprise Application Architecture nach Martin Fowler
11+
12+
Auch bekannt als:: Fowler-Muster, PEAA-Muster, Enterprise-Muster
13+
14+
*Kernkonzepte*:
15+
16+
Domain-Logic-Muster:: Transaction Script, Domain Model, Table Module, Service Layer
17+
18+
Data Source Architectural Patterns:: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper
19+
20+
Object-Relational Behavioral Patterns:: Unit of Work, Identity Map, Lazy Load
21+
22+
Object-Relational Structural Patterns:: Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance
23+
24+
Object-Relational Metadata Mapping Patterns:: Metadata Mapping, Query Object, Repository
25+
26+
Web Presentation Patterns:: Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller
27+
28+
Distribution Patterns:: Remote Facade, Data Transfer Object
29+
30+
Offline Concurrency Patterns:: Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock, Implicit Lock
31+
32+
Session State Patterns:: Client Session State, Server Session State, Database Session State
33+
34+
Base Patterns:: Gateway, Mapper, Layer Supertype, Separated Interface, Registry, Value Object, Money, Special Case, Plugin, Service Stub, Record Set
35+
36+
37+
Hauptvertreter:: Martin Fowler ("Patterns of Enterprise Application Architecture", 2002)
38+
39+
*Wann verwenden*:
40+
41+
* Beim Entwurf komplexer Unternehmensanwendungen mit Datenpersistenz
42+
* Beim Aufbau geschichteter Architekturen mit klarer Trennung der Belange
43+
* Bei der Arbeit mit objektrelationalem Mapping und Datenbankinteraktionen
44+
* Beim Entwurf von Webanwendungen mit geeigneten Präsentationsschichtmustern
45+
* Beim Verwalten verteilter Systemkommunikation
46+
* Beim Umgang mit Nebenläufigkeit in Mehrbenutzersystemen
47+
* Beim Erstellen wartbaren und testbaren Enterprise-Codes
48+
49+
*Verwandte Anker*:
50+
51+
* <<domain-driven-design,Domain-Driven Design>> - Ergänzt PEAA mit Domain-Modellierungsansatz
52+
* <<hexagonal-architecture,Hexagonal Architecture>> - Architekturstil mit Fokus auf Ports und Adaptern
53+
* <<clean-architecture,Clean Architecture>> - Geschichtete Architektur mit Abhängigkeitsregeln
54+
====

website/public/data/anchors.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,34 @@
305305
"tags": [],
306306
"filePath": "docs/anchors/five-whys.adoc"
307307
},
308+
{
309+
"id": "fowler-patterns",
310+
"title": "Patterns of Enterprise Application Architecture (PEAA)",
311+
"categories": [
312+
"design-principles"
313+
],
314+
"roles": [
315+
"software-architect",
316+
"software-developer",
317+
"team-lead"
318+
],
319+
"related": [
320+
"domain-driven-design",
321+
"hexagonal-architecture",
322+
"clean-architecture"
323+
],
324+
"proponents": [
325+
"Martin Fowler"
326+
],
327+
"tags": [
328+
"enterprise",
329+
"architecture",
330+
"patterns",
331+
"design-patterns",
332+
"orm"
333+
],
334+
"filePath": "docs/anchors/fowler-patterns.adoc"
335+
},
308336
{
309337
"id": "hexagonal-architecture",
310338
"title": "Hexagonal Architecture (Ports &amp; Adapters)",

website/public/data/categories.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"name": "Design Principles & Patterns",
1414
"anchors": [
1515
"dry-principle",
16+
"fowler-patterns",
1617
"solid-principles",
1718
"spot-principle",
1819
"ssot-principle"

website/public/data/metadata.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
2-
"generatedAt": "2026-02-13T15:46:21.683Z",
2+
"generatedAt": "2026-02-16T07:35:12.663Z",
33
"version": "1.0.0",
44
"counts": {
5-
"anchors": 48,
5+
"anchors": 49,
66
"categories": 12,
77
"roles": 12
88
},
99
"statistics": {
10-
"averageRolesPerAnchor": "3.17",
10+
"averageRolesPerAnchor": "3.16",
1111
"averageCategoriesPerAnchor": "1.00",
12-
"anchorsWithTags": 2,
13-
"anchorsWithRelated": 2
12+
"anchorsWithTags": 3,
13+
"anchorsWithRelated": 3
1414
}
1515
}

website/public/data/roles.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
"devils-advocate",
126126
"domain-driven-design",
127127
"dry-principle",
128+
"fowler-patterns",
128129
"hexagonal-architecture",
129130
"iec-61508-sil-levels",
130131
"madr",
@@ -153,6 +154,7 @@
153154
"dry-principle",
154155
"feynman-technique",
155156
"five-whys",
157+
"fowler-patterns",
156158
"hexagonal-architecture",
157159
"iec-61508-sil-levels",
158160
"madr",
@@ -186,6 +188,7 @@
186188
"domain-driven-design",
187189
"feynman-technique",
188190
"five-whys",
191+
"fowler-patterns",
189192
"impact-mapping",
190193
"madr",
191194
"mental-model-according-to-naur",

0 commit comments

Comments
 (0)