Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practical book provides you with a set of core patterns, principles, and practices for analyzing business domains, understanding business strategy, and, most importantly, aligning software design wit business needs.
I have compiled my thoughts of the first chapter in a small video and tried to combine it with other knowledge I think most people forgot.
To me, the most interesting part of this research was the absolute delight of being able to read the Nato’s report on software engineering from 1968, and how strangely relevant it still feels today:
Let me know what you all think of the first chapter. Suggestions for the video format are also appreciated, since I am still learning this and make a best effort to improve.
I am currently a little bit more advanced in the book. However, doing research, compiling my thoughts and putting it all in a 10-15 minutes video format (so people can listen while doing chores, for example) is something that does take some time.
My objective is to put a video about a chapter every 2-3 weeks (depending on how busy I am with work/life).
But since you did mention elixir specifically, I will give you all a hint on some work I did a while ago, specifically tailored to one of the chapters in this book:
This is for chapters 6-7. But we are a long way from them (at least 9 weeks before I get there with the format I have in mind xD).
Anyway, if you folks have any suggestions to improve the videos, let me know. I am still new at this, but I also want to make videos that people enjoy listening to. This way they are more likely to learn!
Interesting domain. Also, I have always believed that DDD should often work hand-in-hand with diagramming (like the C4 model), and working on the actual framework.
I usually use Mermaid graphics for this. Can you give an example of what tools you use and what the C4 model looks like? I am unaware of that type of diagram.
C4 Model is proposed by Simon Brown. It is a collection of context diagrams to visualise the application architecture.
I use both Mermaid and PlantUML. MermaidJS is a handy choice because most markdown editors support it. However, the graphics often become messy on Mermaid C4.
PlantUML supports a manual re-position and can make sure the graphics are readable.
Structurizr is the recommended choice but the support on most editors is limited.
The most important part for me was to understand the crucial importance of mental models, and how your understanding of the problems shapes our solutions!
Hello folks!
It is time for chapter 3 (a little bit earlier to be honest)!
I am posting this chapter before the time I had planned as I have some personal tasks to perform and I don’t want you to be without your bi-weekly update!
The one thing that stuck with me from working on this chapter was the importance of bounded contexts and how they are mere maps for the mental models we hold in our heads. Knowing when to decompose into more bounded contexts is something I also find interesting but need more experience on !
In this video, I am still refining the approach I am taking and I think I am landing on a more lecture-oriented approach. I hope you like it!
Chapter 4 will be the last chapter of Part 1. It is by far the biggest and its also the one that will take the most time and effort to summarize. Keep tuned for more information about it !
As usual, please provide feedback on how I can improve the video summaries so more people can enjoy them!
I hope you all like this video and enjoy it and learn something!
I have finally release Chapter 4 - Integrating Bounded Contexts (Part 1)
Yes, you have probably read it right, Part 1! There is so much in this one chapter to cover, that I had to split it into two parts. Part 2 already has the script done, but recording and editing are still in the planning phase.
The one thing that stuck with me, with this first part of the chapter, was the fact that how people collaborate actually reflects how projects integrate with each other. As a developer, I always understood that politics in companies had an impact in projects and how they are done, but I never really understood that impact.
This chapter makes it very clear - it tells you how personal/team relationships affect the project integration and what tactics you can use in your code (yes code) to deal with it. There is also a segway here to be done in regards to Conway’s Law but I leave that treat for the reader to reflects on their own, besides the video is already long enough !
In this video I went more with a lecture approach, creating graphs, slides and trying to hon in a presentation style that is more academic in nature. I am not doing this for views, so it doesn’t make sense to focus on being flashy and cool, it makes more sense to expose information in a clear manner that others understand easily.
With this said, please do note I am always open to constructive criticism and if you have any tips for improvement feel free to share them, as I also want my videos to be enjoyable for people willing to learn DDD !
I hope you all like this video and enjoy it and learn something!
No!
You can read this on its own. This book is a more recent/refined approach on DDD.
You do have to take into account that different authors sometimes have different opinions regarding the same topics though!
With this in mind, if you still want to read the original one by Eric Evans, it is still nice for you to have a comparison point on how things started and how they evolved.
If you are unsure on whether to read this book or not, you can check out the mini videos posted here. They usually last 10-15 minutes, and you can listen to them while doing your chores. Should be more than good enough to give you an idea on what the book covers and how!