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
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Generative Deep Learning, 2nd Edition
Generative AI is the hottest topic in tech. This practical book teaches machine learning engineers and …
book
Flow Architectures
Software development today is embracing events and streaming data, which optimizes not only how technology interacts …
book
Modern Software Engineering: Doing What Works to Build Better Software Faster
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David …