Patterns of Enterprise Application Architecture (Corporate application templates)
A classic early-century book (2002 year) From Martin Fowler, which is worth reading today:) She came through. 8 after-bookDesign Patterns" and generalized the pattern approach to the architecture level of entire applications. The book on corporate application patterns consists of two parts: the narratives and the patterns.
- The Narratives General topics are discussed here
- Layering Here the authors talk about the division into levels to combat the complexity of the software. The main point is that each layer provides a certain abstraction through the interface and the levels interact with each other through these interfaces. Here, as usual, is a reference to the network model OSI and TCP/IP. Here the author tells us about 3 basic levels in corporate applications: data source, domain, presentation.
- Organizing Domain Logic - here the author talks about the organization of domain logic and spoilerite 3 The second part is transaction script, domain model, table module. Then he compares them with each other and shows the limits of applicability. The service layer is often placed on top of a domain model or table module. Next, the representation layer interacts with the domain layer through this service layer.
- Mapping to Relational Databases This is about how to deal with data. And patterns like table data gateway, active record, and data mapper come on the scene. Here the questions of how to map structures from relational databases to the model of classes and objects within the application and how to be specific with inheritance are discussed. n
- Web Presentation Here the author talks about the MVC pattern. (model-view-controller), which was once popular. Now this chapter looks like a rarity:)
- Concurrency A short story about problems of competitiveness, execution context, isolation and immutability, optimistic and pessimistic locks, deadlocks, and transactions (And of course ACID.).
- Session State - here we are talking about storing the session state on the server
- Distribution Strategies - about distributed objects (distributed object system)Who rested in Bose with Corba:) But here are some thoughts about DTO. (data transfer objects) and lazy load.
- Putting It All Together The authors tell you how to use all of the above: start with the domain layer, move to the data source layer and move on to the presentation layer. Then they talk about specific technologies, like J2EE, and that sounds like a hello from the past.
Continuation in next post.