I've always taken these "design patterns" to be a Shibboleth of the bottom 80-ish percent of programmers. The mediocrities can't handle math. If they dig deep enough into any technical area, they get confused and insecure and pissed-off. Design patterns is the Revenge of the Not-Nerds. It's to use the language of the business to turn the tables and make the actually competent feel queasy and unsure of themselves in t…
I'm Sick Of GOF Design Patterns
11–20 of 46 posts
Re: I'm Sick Of GOF Design Patterns
#12Re: I'm Sick Of GOF Design Patterns
#13I've always taken these "design patterns" to be a Shibboleth of the bottom 80-ish percent of programmers. The mediocrities can't handle math. If they dig deep enough into any technical area, they get confused and insecure and pissed-off. Design patterns is the Revenge of the Not-Nerds. It's to use the language of the business to turn the tables and make the actually competent feel queasy and unsure of themselves in t…
That's well and good, but quite a lot of business value can be created using sub-elite programmers. The problem with not having a good common vocabulary is that it makes it harder and harder to ever have proper engineering in software. That said, your example of not being able to use trig is flat out unacceptable--that's things taken much, much too far. Even an average programmer shouldn't be afraid of basic trig.
Furthermore, "rockstar" developers are often a hinderance on these kinds of projects: they take workarounds that are technically sound, but harder to maintain. Use of consistent design patterns makes maintenance a hell of a lot easier (especially when using less-talented developers). Rockstar developers are great in a startup when you need your developer to be a systems architect as well, but they're less useful in rigid functional projects like big enterprise software projects where developer and architect roles are rigidly separated.
But the example OP listed still makes sense: wrapping the example trig in a function makes sense if you plan to modify that function later and it's used in several places across the project.
Re: I'm Sick Of GOF Design Patterns
#14The thing about the GOF book is that it gives you a great foundation for designing great software. No, they aren't the only patterns out there, but you are going to find at least some of them in any well designed system. You will also see a lot of code that is clearly based on a GOF pattern, but evolved from that to solve a specific problem.
For instance, you can't get a web job these days without being familiar with MVC. And really, you should know what component modern day web frameworks are missing (an observer). You will probably use some rendition of the chain of command at some point in your career. Then you have the proxy pattern, bridge pattern, adapter pattern which are all popular as well.
So sure, hate on GOF. But you're completely missing something if you do, and expressing such distaste for it makes you look bad (imo). GOF doesn't take away the creative aspect of programming, it actually facilitates it by giving you a solid foundation of which to work. So while some will perform a piece of sheet music, others will use the sheet music as inspiration to create something new and beautiful.
Re: I'm Sick Of GOF Design Patterns
#15The right answer to the Patterns interview question is, "Whenever I see a pattern, I abstract it away."
This is what people mean when they say a design pattern represents a deficiency in a language: the very fact that it's a design pattern and not, say, a library function is precisely because that language provides no way to abstract it away. Hence, rather than being something that we can turn into a reusable code artifact, the pattern instead becomes a piece of programmer lore, existing only in comments, in design documents or in people's heads.
Re: I'm Sick Of GOF Design Patterns
#16Now... What I am sick of is people misapplying those patterns in situations and languages they really shouldn't.
Re: I'm Sick Of GOF Design Patterns
#17It proves you can communicate succinctly with other developers. I can't count the number of times I've had a coworker laboriously explain some design they "invented" only to reach the end and realize they just described an observer, or command, etc.
Sure, I get sad when people overuse design patterns too, but I find them incredibly helpful as a communication tool.
Re: I'm Sick Of GOF Design Patterns
#18I've always taken these "design patterns" to be a Shibboleth of the bottom 80-ish percent of programmers. The mediocrities can't handle math. If they dig deep enough into any technical area, they get confused and insecure and pissed-off. Design patterns is the Revenge of the Not-Nerds. It's to use the language of the business to turn the tables and make the actually competent feel queasy and unsure of themselves in t…
That should be ".apply(Angle x)", not ".apply(double x)". It's not properly enterprise-y if you can actually see a primitive type anywhere.
Re: I'm Sick Of GOF Design Patterns
#1916 out of 23 patterns were found by Peter Norvig to be simpler or invisible in Lisp or Dylan:
Re: I'm Sick Of GOF Design Patterns
#20Patterns in software mean the same thing. If I can recognize the pattern through reading code, UML, or by being told with jargon, I am going to save time and energy.
I am going to assume you are not a musician or music theorist or something along those lines. Mainly because music is patterns.
MENSA describes intelligence as the ability to recognize patterns. (Couldn't find my source on this.)
But lastly, GOF didn't tell people that their patterns are a means to an end, they are a starting place.