3 ms·
Rainbow analogy meant to mean that often arguments a) focus on narrow aspects and b) don't explicitly define context. Excel patterns will be different from patt
by mirekrusin 6y ago
Rainbow analogy meant to mean that often arguments a) focus on narrow aspects and b) don't explicitly define context. Excel patterns will be different from patterns in x86 assembly or high level software architecture.
Sometimes patters are prose about arrangement, sometimes template can be provided and in some cases even fully functional, generic code can be provided.
I don't see anything wrong with calling them "design patterns", software is about "designing" systems and "pattern" reflects the fact that they re-occur, can be reused, can be applied to similar problems etc.
The value is in recognising similar structures, communicating them, reusing solutions to already thought through problems etc.
Poorly designed code can be recognised straight away with ad-hoc, incoherent spaghetti. On the other side there are many poorly applied "pattern" implementations with idiotic verbosity that should be called out as "anti-patterns" instead (just mere change of the language is enough to move a pattern to anti-pattern).
Just because it can describe about anything doesn't make it pointless, just like "best practices" section can be about anything, it doesn't mean it makes it pointless.
Anti-patterns are very useful concept as well.
- neonological 6y agoI don't think you understand my point. Programming techniques and giving names to these techniques is not pointless. What is pointless is pretentiously inflating these techniques and placing them into a pseudo academic field and calling it "design patterns." >The value is in recognising similar structures, communicating them, reusing solutions to already thought through problems etc. The English language already reuses concepts. You drive cars. You do not call it the "car driving pattern" and make is part of the concept of "design patterns" This is the pointlessness I am referring to. >Anti-patterns are very useful concept as well. Yeah in common English you call it "Bad techniques" or "ineffective methods". Everyone is already 100% aware of the concept of a technique that isn't "good" you don't need to teach people this concept. My argument here is that the name "anti-pattern" is pure snobbery. It's like calling standing still "anti-movement." No new concept was introduced by the word "anti-pattern." Anti-pattern refers to a very simple concept that every single human understands. The pretentiousness is in the word and inflates the perception of this concept to the point where someone like you thinks "anti-pattern" is a completely new mind blowing concept (It's not).
- mirekrusin 6y agoIt feels more like you had to deal with some idiot abusing word "pattern" than anything else; "pattern", "method", "solution" is "potato potato", what is important is recognising similarities, naming higher level concepts for good communication and implementing systems organised around sound abstractions as opposed to adhoc, shallow, not thought through mess holding on rolls of scotch tape.
- neonological 6y agoFeels like your taking this on a personal tangent remarking on who I've dealt with in the past rather then taking the point head on because the logic is pretty much inescapable. Whether I have or have not dealt with such a person named Chris P. is irrelevant to the the point. >what is important is recognising similarities, naming higher level concepts for good communication Isn't this what the English language is for? Doesn't every single person on the face of the earth recognize all of these concepts and deploy all of these concepts using the English language on fields more numerous than computer science alone?
- kitkat_new 6y ago> Isn't this what the English language is for? Doesn't every single person on the face of the earth recognize all of these concepts and deploy all of these concepts using the English language on fields more numerous than computer science alone? You are welcome to explain the Abstract Factory every time you talk about it. I prefer to just refer to the well known name of the pattern.
- neonological 6y agoYou completely missed the point kitkat. Abstract Factory is valid English vocabulary. The point is it's just a programming technique / trick. My main issue is that the word "Design pattern" inflates what these things actually are. The jargon is nuts. Design patterns isn't an academic field of study it's just miscellaneous programming tricks and common practices. Don't raise it to a higher level than what these things actually are. Not to mention pretentious names like "strategy pattern" or "iterator pattern" don't really help.