Categories


Archives


Recent Posts


Categories


Design Patterns Failed. Why? Should we Care

astorm

Frustrated by Magento? Then you’ll love Commerce Bug, the must have debugging extension for anyone using Magento. Whether you’re just starting out or you’re a seasoned pro, Commerce Bug will save you and your team hours everyday. Grab a copy and start working with Magento instead of against it.

Updated for Magento 2! No Frills Magento Layout is the only Magento front end book you'll ever need. Get your copy today!

I came across this talk video from Brian Marick at the Deconstruct software conference. It was a refreshingly candid take on why the classic software design patterns are generally considered burdensome chains instead of the pattern language they set out to be.

And the question is why. I think you can have several reasons, but I’m going to focus on this one, which is that design patterns started out with not enough building blocks, that were at too low of a level. So if you look at all the design patterns, they’re basically composed of two things. There’s functions, or methods, which are just functions, and polymorphism, based on inheritance. Those are the two things in your bag of tricks, and that’s what you create these design patterns from.

The that were at too low of a level line resonated the most for me. These patterns came out of writing C++ programs in the late 80s and early 90s. They were fine patterns for that sort of work. I continue to roll my eyes when platforms based in higher level languages like python, ruby, or PHP seem intent on implementing these almost 25 year old patterns patterns blindly, creating software platforms that are far more complex and brittle than they need to be.

Copyright © Alan Storm 1975 – 2018 All Rights Reserved

Originally Posted: 10th April 2018