"I Don't Do Patterns" et al.

I just read this blog entry for Michael Earls and it got me wondering.  I am one of these neanderthals that has been coding since before I could drive.  I see the value of “Patterns” as a common language to help solve problems, but I am not a huge fan of “Everything is a Pattern” mentality that peeked sometime in the late nineties.  I was talking to Chris Sells one day about patterns and we came to the conclusion that patterns are great because they created a common language for stuff that we've been using for years.  The problem comes in when a developer tries to fit every problem into the GOF patterns. 

At the end of the day, we all use patterns, even if we refuse to call them that.  Both extremes have their own problems:

  • “patterms are everything” developers tend to waste time trying to fit their domain problems into the GOF patterns;
  • “I don't do patterns” developers tend to miss the point of reusing common solutions for common problems.

“I don't think in patterns, but I certainly do them...”

Comments:

I've had similar "rants" with other devs that have been at it for a long time....when I was in school we called a code pattern an algorithm, e.g. the bubble sort, linked list.

Can't agree more..."I don't think in patterns, but I certainly do them..."

"patterns are everything" - This guy is highly likely to never have seen a significant project through to completion yet.

"I don't do patterns" - This guy is highly likely to re-invent the wheel on occasion. Good chance of some of his work making it to www.thedailywtf.com.

Dunno about right/wrong, but I tend to agree; I really made an effort to do design work as patterns - and found that it was an overly constraining methodology. There was a gain to be had where you could readily identify useful patterns, name it & go on, but other aspects approached extreme frustration trying to either a) shoehorn the thought into an existing pattern; b) trying to come up with a rationale for a new pattern.

Like everything else I've done for the last (nearly) 20 years of development, there's no absolute to be had here, either...

Yes, I agree totally.
So far, the greatest problem that I've seen is on existing projects that have gotten in trouble through the misuse of patterns. A pattern gives an inexperienced designer more confidence, thinking that they are following a will trodden path - when in fact they usually end up in the wilderness.
As you said, they are good for vocabulary but not a substitute for experience.


 



 
Save Cancel