Book description
Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C#
This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applications for complex domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space. You will learn how to build effective domain models through the use of tactical patterns and how to retain their integrity by applying the strategic patterns of DDD. Full end-to-end coding examples demonstrate techniques for integrating a decomposed and distributed solution space while coding best practices and patterns advise you on how to architect applications for maintenance and scale.
- Offers a thorough introduction to the philosophy of DDD for professional developers
- Includes masses of code and examples of concept in action that other books have only covered theoretically
- Covers the patterns of CQRS, Messaging, REST, Event Sourcing and Event-Driven Architectures
- Also ideal for Java developers who want to better understand the implementation of DDD
Table of contents
- Introduction
-
Part I: The Principles and Practices of Domain-Driven Design
- Chapter 1: What Is Domain-Driven Design?
- Chapter 2: Distilling the Problem Domain
- Chapter 3: Focusing on the Core Domain
- Chapter 4: Model-Driven Design
- Chapter 5: Domain Model Implementation Patterns
- Chapter 6: Maintaining the Integrity of Domain Models with Bounded Contexts
- Chapter 7: Context Mapping
- Chapter 8: Application Architecture
- Chapter 9: Common Problems for Teams Starting Out with Domain-Driven Design
- Chapter 10: Applying the Principles, Practices, and Patterns of DDD
- Part II: Strategic Patterns: Communicating Between Bounded Contexts
-
Part III: Tactical Patterns: Creating Effective Domain Models
- Chapter 14: Introducing the Domain Modeling Building Blocks
- Chapter 15: Value Objects
- Chapter 16: Entities
- Chapter 17: Domain Services
- Chapter 18: Domain Events
- Chapter 19: Aggregates
- Chapter 20: Factories
-
Chapter 21: Repositories
- Repositories
- A Misunderstood Pattern
- Aggregate Persistence Strategies
- A Repository Is an Explicit Contract
- Transaction Management and Units of Work
- To Save or Not To Save
- The Repository as an Anticorruption Layer
- Other Responsibilities of a Repository
- Repository Antipatterns
- Repository Implementations
- The Salient Points
-
Chapter 22: Event Sourcing
- The Limitations of Storing State as a Snapshot
- Gaining Competitive Advantage by Storing State as a Stream of Events
- Event-Sourced Aggregates
- Building an Event Store
- Using the Purpose-Built Event Store
- CQRS with Event Sourcing
- Recapping the Benefits of Event Sourcing
- Weighing the Costs of Event Sourcing
- Additional Learning Resources
- The Salient Points
- Part IV: Design Patterns for Effective Applications
- Title Page
- Copyright
- Dedication
- About the Author
- Credits
- Acknowledgments
- Advert
- EULA
Product information
- Title: Patterns, Principles, and Practices of Domain-Driven Design
- Author(s):
- Release date: May 2015
- Publisher(s): Wrox
- ISBN: 9781118714706
You might also like
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …
book
Fundamentals of Software Architecture
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real …
book
Practical Domain-Driven Design in Enterprise Java: Using Jakarta EE, Eclipse MicroProfile, Spring Boot, and the Axon Framework
See how Domain-Driven Design (DDD) combines with Jakarta EE MicroProfile or Spring Boot to offer a …