4 ms·
In my experience biggest problem with DDD is that many developers are just not interested in business problem they are designing. They want blanket approach, th
by dzikimarian 4y ago
In my experience biggest problem with DDD is that many developers are just not interested in business problem they are designing. They want blanket approach, that will allow to quickly get over design phase and get to "fun" technical problems.
DDD requires you to understand problem, find pieces that work together (have to be saved in single transaction or world burns). More importantly find pieces that doesn't have to be saved together and nothing bad happens (which is harder because it's so nice that we can setup foreign keys for everything and have always consistent data. Too bad that it isn't and doesn't need to be consistent in real world).
There's lots of opinions in these comments I heard over the years working with DDD from inexperienced developers.
* DDD equals microservices - completely wrong - you will make mistakes while dividing domain. You should start form modular monolith.
* DDD should start from relational database model - nope. You will lock yourself in unnecessary relations.
* DDD requires big pull requests for trivial changes and that's a problem - first of all, most time is spent reading code, not writing. 2 minutes more for better readibility is worth it, even if you don't like it. Secondly - it's mostly for trivial changes like a new field. Logical changes that are really hard to grasp usually are contained in a few domain classes.
* No team is able to maintain separation between domains - many teams are not able to maintain ANY architecture at all and we end up with mess anyway(often because architecture didn't care about businesses requirements and then developers complain that "bad business made them to make bad choices"). Doesn't mean we shouldn't try.
In my experience DDD done correctly is only solution that reduces cognitive load while developing big systems. However if you prefer to live by "two weeks of development will save you two hours of planning", then you aren't going to like it :-)