2 ms·
Unfortunately "design patterns" for most, means technical programming language patterns, rather than the patterns found in "problem domains" outside of computin
by aryehof 9y ago
Unfortunately "design patterns" for most, means technical programming language patterns, rather than the patterns found in "problem domains" outside of computing that can be repeatedly and predictably modeled into code.
They do exist, but are very rarely known. Take object-orientation. Typically the primary pattern known is just object, class and inheritance. However, there are patterns that build on those to model the things, people, places, events and concepts, and the roles they interact in, and the constraints that limit them, in every "business" or real-world domain.
Why aren't they better known? I think it is because object modeling has entirely lost the battle today to data modeling, where data entities are acted on by external code organized using functional decomposition. It doesn't seem to bother most that for 45 years we have been struggling with the problem that doing so increasingly results in a "big ball of mud" as project size and complexity increases.
- cocoablazing 9y agoWe maintain a lightweight platform alongside a legacy platform that is an untestable ball of mud. This resulted from rapid implementation of business demands over the years, along with a practice of addressing numerous data quality problem through hacks in components, rather than cleaning the data or using a sanitization layer to access it. Lack of dependency inversion in systems like this is truly the road to ruin, as the system complexity grows so quickly in time, due to interactions, that eventually nobody really understands what it does or why it does it. I suppose this is tolerable for some applications, but if you need to numerically validate it, it's a nightmare.