Hands-on Domain-driven Design - by example
Hands-on Domain-driven Design - by example
Domain-driven Design practically explained with a massive case study
About the Book
This book is a modern, in-depth explanation of the principles of Domain-driven Design. The book has a writing style that is easy to understand, explaining the theory and boasts numerous exercises and examples. The exercises and sample solutions build on a high-quality, complex case study on mortgage loans. This detailed case study is the basis for all the practical explanations in the book.
The book focuses on topics such as collaboration with domain experts, agility and strategic design. It discusses in detail how we can use knowledge crunching methods to shape communication with non-technical stakeholders in order to derive an Ubiquitous Language. The book also explains how the ideas of agility harmonize with the iterative modeling activity of Domain-driven Design. In the field of strategic design, the book discusses the connections between domains, sub-domains and bounded contexts. It also illustrates how bounded contexts can relate to microservices architectures. In addition, the book is very detailed and, above all, practice-oriented on the subject of context maps, including a consistent suggestion for graphical representation. However, this does not mean that topics such as tactical design with its internal building blocks are neglected. In this part, patterns such as Entity, Value Object, Aggregate, Domain Event, Service, Factory and Repository are examined and explained using detailed examples. The book also deals with architectural patterns such as hexagonal architecture, sometimes also known as onion architecture, and also discusses the advantages and disadvantages of such approaches. The book is rounded off by a chapter on implementation aspects using Java with Spring Boot, which leads to a complete implementation of the case study.
The current release / version of Hands-on Domain-driven Design - by example offers:
- A sophisticated, high quality case study
- An easy to understand writing style
- Many exercises with solutions that weigh in on the pros and cons of the design options given
- Tips & Tricks with best practices for the collaboration with business domain experts and other non-technical folks
- A broad overview of knowledge crunching techniques such as Event Storming, Domain Storytelling, User Story Mapping and Behavior-driven Design (Example Mapping)
- An overview how Domain-driven Design relates to agile principles and practices such as Continuous Delivery and DevOps
- A very detailed explanation of everything related to strategic design starting with domains, subdomains and bounded contexts including a deep dive into the identification of bounded contexts
- Covers how to transfer the idea of a bounded context towards microservice architectures
- A practice-oriented description of the context map, which depicts relationships between systems and their teams in a holistic way. This description is clearly focused on the practical use of the context map and is rounded off by a coherent, consistent graphical representation
- Explanations to the patterns for tactical design including entity, value object, aggregate, service, repository, domain event and factory
- Architectural patterns such as the hexagonal architecture
Currently working on:
- CQRS subchapter
- Explanation of the implementation of the case study with Java and Spring Boot
About the current status:
I am aware that I am behind my planned schedule, however I am committed to finalizing this book within the next few months. Thanks for your patience.
Table of Contents
- 1.1 What is Domain-driven Design about?
- 1.2 Disclaimer: Do not become a blind Domain-driven Design guru
- 1.3 Ways to read this book
- 1.4 Overview of the chapters
- 1.5 Acknowledgements
2. Introducing Big Pug Loans
- 2.1 About the Big Pug Bank
- 2.2 Business Overview
- 2.3 Applicants and customers
- 2.4 Mortgage Loan Application
- 2.5 Collateral Value and Market Value Comparison
- 2.6 Scoring
- 2.7 Document check
- 2.8 Credit Decision
- 2.9 Reactions after the credit decision has been made
- 2.10 Case Study Appendix
3. Cultural and organizational aspects of Domain-driven Design
- 3.1 Knowledge crunching
- 3.2 Techniques for Knowledge Crunching
- 3.3 The Ubiquitous Language
- 3.4 The role of the domain expert
- 3.5 Domain-driven Design and agile
- 3.6 Summary
4. Strategic Design
- 4.1 Ways to approach complexity
- 4.2 What is Strategic Design?
- 4.3 Problem vs Solution Space
- 4.4 Domains
- 4.5 Subdomains
- 4.6 Bounded Context
- 4.7 Context Maps
- 4.8 A Context Map for Big Pug Loans
- 4.9 Summary
5. Tactical Design
- 5.1 The domain model in a Bounded Context
- 5.2 Building Block Patterns
- 5.3 Software Architectures with Domain-driven Design
- 6. Implementation with Java and the Spring Ecosystem
- 7. Cited Literature
The Leanpub 60-day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
80% Royalties. Earn $16 on a $20 book.
We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $12 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them