Strategic Patterns
As you learned in previous chapters, the biggest challenge at the start of any project—whether it’s a greenfield project or a refactoring effort—is the language. By now, the importance of understanding the domain and defining a shared language to build knowledge should be evident. However, creating a ubiquitous language comes with hidden challenges, often stemming from human behavior.
Now that you know how to avoid these mistakes, you are ready to discover the patterns that domain-driven design gives us and learn how to use them during the refactoring of your system.
To do so, we’ll cover the following main topics in this chapter:
- Defining terms clearly
- Dividing the domain
- Dealing with communication between bounded contexts
By the end of the chapter, you will know how to strategically divide a domain into subdomains, understand their roles in your domain, and determine the optimal communication...