SlideShare a Scribd company logo
Design Pattern ABUSE
Patrick Delancy
NOTICE!!!
This slide deck has been adapted from a
presentation that was intended to be given live,
in person…. like with a real person in front of real
people. You know… breathing the same air and
all that.
The key points have been transcribed onto
separate slides, so you still get some benefit
from reading through it all, but you are still
missing out on all of the great stories, witty
banter, hilarious costumes, stunning arias … or
something like that.
If you REALLY want to get the most out of this
presentation, go to patrickdelancy.com and ask
him to come give it to your group!
The Almighty Pattern
Some people love
patterns, some people
hate them. I do both.
I love the idea of known
“good” solutions to
common problems.
I hate how the harder I
try to use them, the
worse my code suffers.
The right ways to use Design Patterns
ll
ll
Exessorize
“If a little bit is good, more must
be better!”
Start by using a pattern
well, but extending that
use so far that the
product suffers.
Blinder Junkie
This pattern is awesome! It can
do anything!
Become so enamored
by a pattern that you
don’t consider other
options to solve a
problem.
Off Fleek
So on fleek, you fell off the other
side.
Work hard to
implement a pattern
perfectly, but take it too
far.
Pokeball
Gotta use ‘em all!
Measure success (even
a little bit) by the
number of patterns you
use in your code.
Swayze Clench
Never. Let. Go.
Even when a pattern
turns out to be wrong
for your solution, you
keep pushing forward
with it.
The right way to use Design Patterns
ll
ll
ll
ll
Don’t.
By that, I mean don’t
start with the pattern.
Instead, write code that
fulfills the requirements
Code by
Intention
This might be a pattern one day
Write clean code that
might resemble a
pattern…someday.
This won’t work as well
unless you have studied
your design patterns,
though!
Refactoring to
Patterns
Ah… now I see it!
You may notice that
your code looks a little
like a specific pattern…
…and with a little
refactoring, you can
add more of the
pattern’s benefits.
Once again, this won’t
work unless you know
your design patterns!
The Main Point
If you get anything from this presentation… this is it.
Design patterns
should emerge from
your code, not be
forced upon it.
Patrick Delancy
patrickdelancy.com
This Presentation:
patrickdelancy.com/presentations/...
@patrickdelancy
linkedin.com/in/patrickdelancy
github.com/patrickdelancy
google.com/+patrickdelancy

More Related Content

What's hot

Week 3 day 1
Week 3 day 1Week 3 day 1
Week 3 day 1
Lily809411
 
Storyboard planning
Storyboard planning Storyboard planning
Storyboard planning
willcraven97
 
Evaluation
EvaluationEvaluation
Evaluation
alexah95
 
Visual Rhetoric, August 28th
Visual Rhetoric, August 28thVisual Rhetoric, August 28th
Visual Rhetoric, August 28th
Miami University
 
Matter (a whole thing about design)
Matter (a whole thing about design)Matter (a whole thing about design)
Matter (a whole thing about design)
Mike Bifulco
 
Problem solving
Problem solvingProblem solving
Problem solving
Emma Garthwaite
 

What's hot (6)

Week 3 day 1
Week 3 day 1Week 3 day 1
Week 3 day 1
 
Storyboard planning
Storyboard planning Storyboard planning
Storyboard planning
 
Evaluation
EvaluationEvaluation
Evaluation
 
Visual Rhetoric, August 28th
Visual Rhetoric, August 28thVisual Rhetoric, August 28th
Visual Rhetoric, August 28th
 
Matter (a whole thing about design)
Matter (a whole thing about design)Matter (a whole thing about design)
Matter (a whole thing about design)
 
Problem solving
Problem solvingProblem solving
Problem solving
 

Similar to Design Pattern Abuse

3 simple steps to create your company logo - An essential guide for entrepren...
3 simple steps to create your company logo - An essential guide for entrepren...3 simple steps to create your company logo - An essential guide for entrepren...
3 simple steps to create your company logo - An essential guide for entrepren...
Nishchal Par
 
The 17 Graphic Design Tips All Non Designers Need to Know
The 17 Graphic Design Tips All Non Designers Need to KnowThe 17 Graphic Design Tips All Non Designers Need to Know
The 17 Graphic Design Tips All Non Designers Need to Know
Ram Chary Everi
 
1. communication methods pro forma(1)
1. communication methods pro forma(1)1. communication methods pro forma(1)
1. communication methods pro forma(1)
JamesCooperAbel
 
Generating ideas by Aremu Smog
Generating ideas by Aremu SmogGenerating ideas by Aremu Smog
Generating ideas by Aremu Smog
Oluwagbamila(SMOG) Aremu
 
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.ParisSTEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
suhailmirza
 
Ten tips for creating slides
Ten tips for creating slidesTen tips for creating slides
Ten tips for creating slides
Tola Odugbesan
 
Fmp ps
Fmp psFmp ps
Fmp ps
Tom Batty
 
5. fmp pre production ip
5. fmp pre production ip5. fmp pre production ip
5. fmp pre production ip
OliverFrost4
 
5. fmp pre production ip
5. fmp pre production ip5. fmp pre production ip
5. fmp pre production ip
OliverFrost4
 
Steal this presentation
Steal this presentationSteal this presentation
Steal this presentation
Marco Gorini
 
Steal this presentation!
Steal this presentation! Steal this presentation!
Steal this presentation!
Cristóbal Montero
 
Steal this presentation
Steal this presentationSteal this presentation
Steal this presentation
Scott Hoag
 
STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION! STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION!
Jesse Desjardins - @jessedee
 
Design without critique is like a flower without water (WebExpo 2013 version)
Design without critique is like a flower without water (WebExpo 2013 version)Design without critique is like a flower without water (WebExpo 2013 version)
Design without critique is like a flower without water (WebExpo 2013 version)
Petr Stedry
 
Idea development pro forma
Idea development pro formaIdea development pro forma
Idea development pro forma
Jordan Bohill
 
EXPLORA x Pepperclip - Visualization
EXPLORA x Pepperclip - VisualizationEXPLORA x Pepperclip - Visualization
EXPLORA x Pepperclip - Visualization
Dorian Dawance
 
Tapping designer thought process, The Goa Project 2013
Tapping designer thought process, The Goa Project 2013Tapping designer thought process, The Goa Project 2013
Tapping designer thought process, The Goa Project 2013
Sarup Banskota
 
IA Mini - Design Consequences Activity
IA Mini - Design Consequences ActivityIA Mini - Design Consequences Activity
IA Mini - Design Consequences Activity
leisa reichelt
 
Public speaking manifesto
Public speaking manifestoPublic speaking manifesto
Public speaking manifesto
Akash Karia
 
Answers to 411 questions
Answers to 411 questionsAnswers to 411 questions
Answers to 411 questions
Miami University
 

Similar to Design Pattern Abuse (20)

3 simple steps to create your company logo - An essential guide for entrepren...
3 simple steps to create your company logo - An essential guide for entrepren...3 simple steps to create your company logo - An essential guide for entrepren...
3 simple steps to create your company logo - An essential guide for entrepren...
 
The 17 Graphic Design Tips All Non Designers Need to Know
The 17 Graphic Design Tips All Non Designers Need to KnowThe 17 Graphic Design Tips All Non Designers Need to Know
The 17 Graphic Design Tips All Non Designers Need to Know
 
1. communication methods pro forma(1)
1. communication methods pro forma(1)1. communication methods pro forma(1)
1. communication methods pro forma(1)
 
Generating ideas by Aremu Smog
Generating ideas by Aremu SmogGenerating ideas by Aremu Smog
Generating ideas by Aremu Smog
 
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.ParisSTEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
STEAL THIS PRESENTATION! from Powered by C3 / SelectNY.Paris
 
Ten tips for creating slides
Ten tips for creating slidesTen tips for creating slides
Ten tips for creating slides
 
Fmp ps
Fmp psFmp ps
Fmp ps
 
5. fmp pre production ip
5. fmp pre production ip5. fmp pre production ip
5. fmp pre production ip
 
5. fmp pre production ip
5. fmp pre production ip5. fmp pre production ip
5. fmp pre production ip
 
Steal this presentation
Steal this presentationSteal this presentation
Steal this presentation
 
Steal this presentation!
Steal this presentation! Steal this presentation!
Steal this presentation!
 
Steal this presentation
Steal this presentationSteal this presentation
Steal this presentation
 
STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION! STEAL THIS PRESENTATION!
STEAL THIS PRESENTATION!
 
Design without critique is like a flower without water (WebExpo 2013 version)
Design without critique is like a flower without water (WebExpo 2013 version)Design without critique is like a flower without water (WebExpo 2013 version)
Design without critique is like a flower without water (WebExpo 2013 version)
 
Idea development pro forma
Idea development pro formaIdea development pro forma
Idea development pro forma
 
EXPLORA x Pepperclip - Visualization
EXPLORA x Pepperclip - VisualizationEXPLORA x Pepperclip - Visualization
EXPLORA x Pepperclip - Visualization
 
Tapping designer thought process, The Goa Project 2013
Tapping designer thought process, The Goa Project 2013Tapping designer thought process, The Goa Project 2013
Tapping designer thought process, The Goa Project 2013
 
IA Mini - Design Consequences Activity
IA Mini - Design Consequences ActivityIA Mini - Design Consequences Activity
IA Mini - Design Consequences Activity
 
Public speaking manifesto
Public speaking manifestoPublic speaking manifesto
Public speaking manifesto
 
Answers to 411 questions
Answers to 411 questionsAnswers to 411 questions
Answers to 411 questions
 

Recently uploaded

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 

Design Pattern Abuse