I’ve written a deep dive into Software Design focusing on the "gray area" between High-Level Design (system architecture) and Low-Level Design (classes/functions).
What's inside:
* A step-by-step tutorial refactoring a legacy big-ball-of-mud into self-contained modules.
* A bit of a challenge to Clean/Hexagonal Architectures with a pattern I've seen in the wild (which I named MIM in the text).
* A solid appendix on the fundamentals of Modular Design.
(Warning: It’s a long read. I’ve seen shorter ebooks on Leanpub).
Sometimes Domain logic has to leak because you want to rely on certain implementation behavior: for example, logicailly there is separation of concerns, but there is a strong argument to commit these changes in a single transaction. In that case I either switch to oplog or if delay is acceptable push to my saga engine.
reply