|
I think your final observation is the correct one, I don't see patterns "imposing", being imposed by stubborn, hide bound old senior devs (ow that hurt) happens of course but I'm slowly relearning to be more flexible, honest.
Patterns are a tool, people become comfortable and productive with a toolset, changing reduces that and most of us are too lazy to do that willingly. Arguing over the merits of patterns is simply a form of entertainment, give the silly buggers some work to do, that generally shuts them up!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: Arguing over the merits of patterns is simply a form of entertainment
I wish it could be that!
Right now is do my righteous way or no way!
|
|
|
|
|
Yes, that's what seems to have happened, but they didn't start out that way.
At their best, Design Patterns simply give developers a set of common terminoloy for various techniques. They are not intended to limit developers' creativity and choices.
Think of the GOF book as a dictionary, not as a play book.
You'll never get very far if all you do is follow instructions.
|
|
|
|
|
PIEBALDconsult wrote: Yes, that's what seems to have happened, but they didn't start out that way.
I think you nailed it there!
|
|
|
|
|
PIEBALDconsult wrote: They are not intended to limit developers' creativity and choices.
They don't. Things go terribly wrong when people who could not program their way out of a wet paper bag mistake them with fail-safe magic spells. Why think when you have a 'pattern' for everything?
The language is JavaScript. that of Mordor, which I will not utter here
I hold an A-7 computer expert classification, Commodore. I'm well acquainted with Dr. Daystrom's theories and discoveries. The basic design of all our ship's computers are JavaScript.
|
|
|
|
|
It should exist an anti pattern called "Pattern programming"
I'm also surrounded by developers swearing by pattern and I'm in an Agile team. For me there is an incompatibility between "pattern" and "Agility" because when you are Agile your architecture emerge and there is no reason to think in term of patterns or pre defined solutions.
Most important is not to know a pattern but to know the anti patterns.
|
|
|
|
|
I had a good laugh reading that!
But it's true!
|
|
|
|
|
|
Jörgen Andersson wrote: Wrong is evil and must be defeated. - Jeff Ello[^]
Interesting link you here!
|
|
|
|
|
|
B413 wrote: or me there is an incompatibility between "pattern" and "Agility" because when you are Agile your architecture emerge
This sounds like the classic misunderstanding of agile that goes roughly along the lines of 'since things change, we never need to design'. I work mostly on agile projects and I can tell you that design patterns are very important to make sure you develop in a way which can accommodate that change. If anything, getting a good framework design is more important in agile because it strongly affects your ability to adapt during development, and that's the essence of agile.
|
|
|
|
|
BobJanova wrote: This sounds like the classic misunderstanding of agile that goes roughly along the lines of 'since things change, we never need to design'.
Agility (and Scrum) pretend architecture emerge. I also work mostly on agile projects and I'm agree that design is very important to make sure you develop in a way which can accommodate that change but design patterns are not the only way to design something.
I remember the time I had to argue against patterns that now are become anti pattern. And that the problem with patterns. When a pattern is not correct it's hard to argue against it because every book, every web page defend it until he became an anti pattern years latter... It is why I think it is more important to know its anti patterns. And I'm not talking about teams that don't really understand to goal of a pattern and that incorrectly implement it. And some patterns are so complex they don't respect the Keep It Simple and Stupid rule.
|
|
|
|
|
We all got shafted by patterns when they became interview questions. Just search this site for a belly laugh.
Peter Wasser
"The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts." - Bertrand Russell
|
|
|
|
|
Another good observation!
|
|
|
|
|
The problem is not with the patterns. When used with thought, they indeed help in solving problems without causing new ones.
The real problem are the people. The simple version is the Voodoo programmer. Those people have little to no understanding of what they are doing. Instead, they try to copy and paste code snippets, of which they must have an impressive collection. And this collection is then used like a book of magic spells for and against every situation.
More 'advanced' Voodoo programmers have made an art of at least appearing less stupid. They have endless lists of rulrs, coventions and patterns (which in reality are just nice names for their magic code snippets) and want everyone to follow these rules just as religiously as they are.
Remember, they more often than not they really don't understand their magic spells. They use things because 'it's a pattern', or beacause 'Mr. ABC said so in his book/article/blog/speech/whatever'.
In some companies management really likes religious code monkeys. They are easier to manage, cost less and look sufficiently competent to outsiders.
The language is JavaScript. that of Mordor, which I will not utter here
I hold an A-7 computer expert classification, Commodore. I'm well acquainted with Dr. Daystrom's theories and discoveries. The basic design of all our ship's computers are JavaScript.
|
|
|
|
|
Is this term "Voodoo programmers" your invention?
That is fun. I call them the alchemist for the same reason. An alchemist don't do real magic. An alchemist combine products to create spells or a potions. Most of the time he only read precipices in a book. But for me an alchemist is not a bad programmer. He can be very good in his craft. He just prefer combine thinks than creating things.
And yes today most companies prefer Alchemists or Voodoo programmers
modified 20-Jun-14 3:21am.
|
|
|
|
|
|
I thought it was "cargo cult programming".
You'll never get very far if all you do is follow instructions.
|
|
|
|
|
Woa, I think I understand magic now!
|
|
|
|
|
Not everything that's right is obvious. Patterns are a codified set of guidelines and advice, including information about when they're appropriate, and they're useful precisely because it's not always obvious what the right answer is without some guidelines to help you.
I think it's all about your last sentence, people being prescriptive with any guidelines, whether that be design patterns or coding standards or anything else to do with work, loses the point of what the guidelines were there for in the first place.
|
|
|
|
|
I had this argument while I was still in college. A team member had decided the entire major was worthless because we had to use prescribed solutions to everything. Apparently having missed the point that these general solutions can (and should be) modified to fit a situation, and the point of our major was identifying when a pattern would be useful and exactly how to implement it in that situation to best benefit the software and our own sanity.
I mean hell, look at adaptor. It's a stopgap solution to keep you from having to re-write libraries and nothing more. This isn't a sacred text it's a few useful ideas.
But yeah, doesn't stop people from treating it like their personal bible.
|
|
|
|
|
Thou shalt follow the hallowed word of the holy pattern!
|
|
|
|
|
So, a complex query fails with
Quote: Msg 8152, Level 16, State 13, Line 1
String or binary data would be truncated.
Now, which column is it? Surely the engine knows which column it is and could add it to the error message?
We're gonna fix it soon, honest![^]
|
|
|
|
|
What do you get when you cross a joke with a rhetorical question?
|
|
|
|
|
Soon, very soon!
|
|
|
|