Vaughn Vernon has more than twenty-five years of experience in system, application, and toolkit architecture, design, and development.
Meer over Vaughn VernonImplementing Domain-Driven Design
Gebonden Engels 2013 1e druk 9780321834577Samenvatting
'Implementing Domain-Driven Design' presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.
Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples-all applicable to C# developers-and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.
The author takes you far beyond "DDD-lite" approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's "strategic design patterns" using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.
Coverage includes
- Getting started the right way with DDD, so you can rapidly gain value from it
- Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based
- Appropriately designing and applying Entities-and learning when to use Value Objects instead
- Mastering DDD's powerful new Domain Events technique
- Designing Repositories for ORM, NoSQL, and other databases
"For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, 'Implementing Domain-Driven Design' will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." - Randy Stafford, Architect At-Large, Oracle Coherence Product Development
"This book is a must-read for anybody looking to put DDD into practice." - Udi Dahan, Founder of NServiceBus
Specificaties
Lezersrecensies
Inhoudsopgave
Preface
Acknowledgments
About the Author
Guide to This Book
1. Getting Started with DDD
-Can I DDD?
-Why You Should Do DDD
-How to Do DDD
-The Business Value of Using DDD
-The Challenges of Applying DDD
-Fiction, with Bucketfuls of Reality
-Wrap-Up
2. Domains, Subdomains, and Bounded Contexts
-Big Picture
-Why Strategic Design Is So Incredibly Essential
-Real-World Domains and Subdomains
-Making Sense of Bounded Contexts
-Sample Contexts
-Wrap-Up
3. Context Maps
-Why Context Maps Are So Essential
-Wrap-Up
4. Architecture
-Interviewing the Successful CIO
-Layers
-Hexagonal or Ports and Adapters
-Service-Oriented
-Representational State Transfer–REST
-Command-Query Responsibility Segregation, or CQRS
-Event-Driven Architecture
-Data Fabric and Grid-Based Distributed Computing
-Wrap-Up
5. Entities
-Why We Use Entities
-Unique Identity
-Discovering Entities and Their Intrinsic Characteristics
-Wrap-Up
6. Value Objects
-Value Characteristics
-Integrate with Minimalism
-Standard Types Expressed as Values
-Testing Value Objects
-Implementation
-Persisting Value Objects
-Wrap-Up
7. Services
-What a Domain Service Is (but First, What It Is Not)
-Make Sure You Need a Service
-Modeling a Service in the Domain
-Testing Services
-Wrap-Up
8. Domain Events
-The When and Why of Domain Events
-Modeling Events
-Publishing Events from the Domain Model
-Spreading the News to Remote Bounded Contexts
-Event Store
-Architectural Styles for Forwarding Stored Events
-Implementation
-Wrap-Up
9. Modules
-Designing with Modules
-Basic Module Naming Conventions
-Module Naming Conventions for the Model
-Modules of the Agile Project Management Context
-Modules in Other Layers
-Module before Bounded Context
-Wrap-Up
10. Aggregates
-Using Aggregates in the Scrum Core Domain
-Rule: Model True Invariants in Consistency Boundaries
-Rule: Design Small Aggregates
-Rule: Reference Other Aggregates by Identity
-Rule: Use Eventual Consistency Outside the Boundary
-Reasons to Break the Rules
-Gaining Insight through Discovery
-Implementation
-Wrap-Up
11. Factories
-Factories in the Domain Model
-Factory Method on Aggregate Root
-Factory on Service
-Wrap-Up
12. Repositories
-Collection-Oriented Repositories
-Persistence-Oriented Repositories
-Additional Behavior
-Managing Transactions
-Type Hierarchies
-Repository versus Data Access Object
-Testing Repositories
-Wrap-Up
13. Integrating Bounded Contexts
-Integration Basics
-Integration Using RESTful Resources
-Integration Using Messaging
-Wrap-Up
14. Application
-User Interface
-Application Services
-Composing Multiple Bounded Contexts
-Infrastructure
-Enterprise Component Containers
-Wrap-Up
Appendix A: Aggregates and Event Sourcing: A+ES
-Inside an Application Service
-Command Handlers
-Lambda Syntax
-Concurrency Control
-Structural Freedom with A+ES
-Performance
-Implementing an Event Store
-Relational Persistence
-BLOB Persistence
-Focused Aggregates
-Read Model Projections
-Use with Aggregate Design
-Events Enrichment
-Supporting Tools and Patterns
-Contract Generation
-Unit Testing and Specifications
-Event Sourcing in Functional Languages
Bibliography
Index
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan