I may be retired, but my thirst for knowledge is ever present, so forgive me this small rant.
After participating in many forums and discussions over the past few years, I’ve made some observations regarding architecture addiction and the nature of their respective communities.
First, I’d like to say that far and away SitePoint has had the best, most supportive community I’ve ever encountered. While we occasionally encounter a troll, or generally rude person, they are typically ignorable.
In the past few years, I’ve seen a lot of people show an interest in, and move towards, using practices and patterns such as domain driven design and command query separation (plus event sourcing).
My main beef with both of the above is primarily in their communities. In my experience, they tend to be rather elitist, choosing to answer simple questions with dialog that centers on a completely different facet than what you asked for.
Numerous times I have seen people post queries, just to see the discussion go through a great many iterations of replies, just to end up back at square one, without an answer yet.
I am also a bit put off by the god status some of these communities hold their benefactors, citing their works as law. While knowledge is invaluable, and their works worth reading, why do so many people take it as gospel? Shouldn’t people be more encouraged to think for themselves, and make intelligent decisions on their own? Who the heck is Eric Evans or Martin Fowler anyway? They are just people. People with ideas, some of which weren’t even theirs initially.
Please understand, I am not dismissing their works, or the impact they have on some projects. But by and large, by my own estimation through experience, a very small number of projects actually require DDD, and even less require CQRS.
So when I see people absolutely struggling with the two practices, including the inability of their communities to properly define or explain things, then I really have to wonder what the overall value is in them.
Sure, DDD is said to offer a more well defined domain, with less chance of polution, and CQRS aids in eventual consistency. But at the end of the day, if you are spending more time trying to understand them than you are actually writing code, you probably don’t need them.
To be honest, they are both completely over-rated. Period.
wanders off back to his rocking chair