SlideShare a Scribd company logo
1 of 13
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #8:
Design Strategies
Homework #1
• Title: Lakeland Hospital Patient
Collection Application
Homework #1: Fred Johnson
Johnson,Fred,N,2763 Filibuster Drive,Lakeland,FL,37643,M,05/27/1935,Y,164-55-0726,1234567890
Homework #1: Betty Williams
Williams,Betty,L,701 Collage Avenue,Orlando,FL,31234,F,11/27/1971,N,948-44-1038
Homework #1: Hector Ling
Ling,Hector,X,1500 Raceway Lane,Tampa,FL,32785,M,10/17/2003,Y,193-74-0274, Smith, John
Dating Is HARD! Let’s Create
Software To Help Track Things
• Need to account for multiple dates with the
same person.
• Different things are done on different dates
• Food is a critical part of every date
Image Credit: thisdateisover.com
But What About Flowers?
Every Date Needs Flowers!
• If we decide that dates need
flowers, then we’re going to have to
change our code
• Every date needs different types of
flowers
• Flowers are used at different points
in different dates
Image Credit: www.clipartpanda.com
Our Design Has A Problem!
• When we add a behavior, like including
flowers, we end up making a lot of changes in
different places.
• What seemed like a simple change (include
flowers) ended up making multiple changes in
multiple places.
Image Credit: www.clipartpanda.com
Our Design Is Breaking
The Single Responsibility Principal
• Single Responsibility Principal: Every object in your system
should have a single responsibility and all of the object’s
services should be focused on carrying out that single
responsibility.
• When we add support for flowers we have to go back and
mess with all three date actions.
• How would we handle adding support for jewelry, a concert,
or a sleepover?
Image Credit: kenmorebranch.akronlibrary.org
The Ripple Effect Is BAD!
• The ripple effect occurs when one small
change to your software causes a ripple of
changes throughout your software.
Image Credit: qwerty2jam.wordpress.com
You Want To Create DRY Code
• DRY: Don’t Repeat Yourself
• Avoid having any duplicate code in your
software. Abstract or separate out things that
are common and place them in a single
location.
• DRY is about having each piece of information
and behavior in your system in a single
sensible place.
Image Credit: www.graphicsfactory.com
What We Covered Today
1. Good design strategies
2. Why grouping code into
segments makes sense
3. Single Responsibility
Principal
4. D.R.Y.
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
What We’ll Be Covering Next Time
1. Version Control
2. Configuration Mgmt
Software
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/

More Related Content

What's hot

Penguin 4.0 - State of Search 2016
Penguin 4.0 - State of Search 2016 Penguin 4.0 - State of Search 2016
Penguin 4.0 - State of Search 2016 Eric Enge
 
Content Effectiveness Optimization - Ungagged 2016
Content Effectiveness Optimization - Ungagged 2016Content Effectiveness Optimization - Ungagged 2016
Content Effectiveness Optimization - Ungagged 2016Eric Enge
 
Collaboration in Linux Kernel mailing lists
Collaboration in Linux Kernel mailing listsCollaboration in Linux Kernel mailing lists
Collaboration in Linux Kernel mailing listsDawn Foster
 
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...Eric Enge
 
Monkigras Talk - Dante on Deciding What to Build
Monkigras Talk - Dante on Deciding What to BuildMonkigras Talk - Dante on Deciding What to Build
Monkigras Talk - Dante on Deciding What to BuildShanley Kane
 

What's hot (6)

Penguin 4.0 - State of Search 2016
Penguin 4.0 - State of Search 2016 Penguin 4.0 - State of Search 2016
Penguin 4.0 - State of Search 2016
 
Content Effectiveness Optimization - Ungagged 2016
Content Effectiveness Optimization - Ungagged 2016Content Effectiveness Optimization - Ungagged 2016
Content Effectiveness Optimization - Ungagged 2016
 
Collaboration in Linux Kernel mailing lists
Collaboration in Linux Kernel mailing listsCollaboration in Linux Kernel mailing lists
Collaboration in Linux Kernel mailing lists
 
Top 5 Green Twitterers
Top 5 Green TwitterersTop 5 Green Twitterers
Top 5 Green Twitterers
 
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...
Opportunism and Being Holistic: What it Takes to Win in Digital Marketing in ...
 
Monkigras Talk - Dante on Deciding What to Build
Monkigras Talk - Dante on Deciding What to BuildMonkigras Talk - Dante on Deciding What to Build
Monkigras Talk - Dante on Deciding What to Build
 

Similar to An Introduction To Software Development - Design Strategies

Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20
Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20
Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20TechSoup
 
Law Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and EthicsLaw Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and EthicsJennifer Ellis, JD, LLC
 
Day of caring powerpoint for agencies 2013
Day of caring powerpoint for agencies 2013Day of caring powerpoint for agencies 2013
Day of caring powerpoint for agencies 2013uweci
 
Introduction to Digital Life (March 2017)
Introduction to Digital Life (March 2017)Introduction to Digital Life (March 2017)
Introduction to Digital Life (March 2017)KR_Barker
 
Social Listening – Gateway to Innovation
Social Listening – Gateway to InnovationSocial Listening – Gateway to Innovation
Social Listening – Gateway to InnovationNetBase Solutions Inc.
 
Conversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipConversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipLoren Davie
 
Helping Developers with Privacy
Helping Developers with PrivacyHelping Developers with Privacy
Helping Developers with PrivacyJason Hong
 
Introduction to Digital Life (October 2016)
Introduction to Digital Life (October 2016)Introduction to Digital Life (October 2016)
Introduction to Digital Life (October 2016)KR_Barker
 
Preview Webinar of REALTOR on the Go
Preview Webinar of REALTOR on the Go  Preview Webinar of REALTOR on the Go
Preview Webinar of REALTOR on the Go Maura Neill
 
Content is King
Content is KingContent is King
Content is KingNUS-ISS
 
Reconnections contentis king_25072013
Reconnections contentis king_25072013Reconnections contentis king_25072013
Reconnections contentis king_25072013Fairil Yeo
 
Webinar: 10 Things to Include in Every Social Media Policy
Webinar: 10 Things to Include in Every Social Media PolicyWebinar: 10 Things to Include in Every Social Media Policy
Webinar: 10 Things to Include in Every Social Media PolicyCase IQ
 
ML-Based Data-Driven Software Development with InfluxDB 2.0
ML-Based Data-Driven Software Development with InfluxDB 2.0ML-Based Data-Driven Software Development with InfluxDB 2.0
ML-Based Data-Driven Software Development with InfluxDB 2.0InfluxData
 
Do This, Not That: Rowan-Salisbury Schools
Do This, Not That: Rowan-Salisbury SchoolsDo This, Not That: Rowan-Salisbury Schools
Do This, Not That: Rowan-Salisbury SchoolsAnalisa Sorrells
 
The Double Edge Sword of the Social Network
The Double Edge Sword of the Social NetworkThe Double Edge Sword of the Social Network
The Double Edge Sword of the Social NetworkMorris County NJ
 
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...Lauren Hayward Schaefer
 
Gmd 2015 dmitri martynov
Gmd 2015 dmitri martynovGmd 2015 dmitri martynov
Gmd 2015 dmitri martynovAsphri457
 
Digital Media in Building Trades Organizing
Digital Media in Building Trades Organizing Digital Media in Building Trades Organizing
Digital Media in Building Trades Organizing Alex Hogan
 

Similar to An Introduction To Software Development - Design Strategies (20)

Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20
Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20
Webinar: Seven Strategic fundraising tips for your nonprofit-2016-01-20
 
SafeNight | Developing a Mobile App from Idea to Launch
SafeNight | Developing a Mobile App from Idea to LaunchSafeNight | Developing a Mobile App from Idea to Launch
SafeNight | Developing a Mobile App from Idea to Launch
 
Law Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and EthicsLaw Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and Ethics
 
Day of caring powerpoint for agencies 2013
Day of caring powerpoint for agencies 2013Day of caring powerpoint for agencies 2013
Day of caring powerpoint for agencies 2013
 
Introduction to Digital Life (March 2017)
Introduction to Digital Life (March 2017)Introduction to Digital Life (March 2017)
Introduction to Digital Life (March 2017)
 
Social Listening – Gateway to Innovation
Social Listening – Gateway to InnovationSocial Listening – Gateway to Innovation
Social Listening – Gateway to Innovation
 
Conversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipConversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data Stewardship
 
Helping Developers with Privacy
Helping Developers with PrivacyHelping Developers with Privacy
Helping Developers with Privacy
 
AppDays_WeatherPro
AppDays_WeatherProAppDays_WeatherPro
AppDays_WeatherPro
 
Introduction to Digital Life (October 2016)
Introduction to Digital Life (October 2016)Introduction to Digital Life (October 2016)
Introduction to Digital Life (October 2016)
 
Preview Webinar of REALTOR on the Go
Preview Webinar of REALTOR on the Go  Preview Webinar of REALTOR on the Go
Preview Webinar of REALTOR on the Go
 
Content is King
Content is KingContent is King
Content is King
 
Reconnections contentis king_25072013
Reconnections contentis king_25072013Reconnections contentis king_25072013
Reconnections contentis king_25072013
 
Webinar: 10 Things to Include in Every Social Media Policy
Webinar: 10 Things to Include in Every Social Media PolicyWebinar: 10 Things to Include in Every Social Media Policy
Webinar: 10 Things to Include in Every Social Media Policy
 
ML-Based Data-Driven Software Development with InfluxDB 2.0
ML-Based Data-Driven Software Development with InfluxDB 2.0ML-Based Data-Driven Software Development with InfluxDB 2.0
ML-Based Data-Driven Software Development with InfluxDB 2.0
 
Do This, Not That: Rowan-Salisbury Schools
Do This, Not That: Rowan-Salisbury SchoolsDo This, Not That: Rowan-Salisbury Schools
Do This, Not That: Rowan-Salisbury Schools
 
The Double Edge Sword of the Social Network
The Double Edge Sword of the Social NetworkThe Double Edge Sword of the Social Network
The Double Edge Sword of the Social Network
 
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
Developer Advocacy: A Career Path for Those With a Passion for Code, Communit...
 
Gmd 2015 dmitri martynov
Gmd 2015 dmitri martynovGmd 2015 dmitri martynov
Gmd 2015 dmitri martynov
 
Digital Media in Building Trades Organizing
Digital Media in Building Trades Organizing Digital Media in Building Trades Organizing
Digital Media in Building Trades Organizing
 

Recently uploaded

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptshraddhaparab530
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxRosabel UA
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
EMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxEMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxElton John Embodo
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 

Recently uploaded (20)

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.ppt
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
EMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxEMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 

An Introduction To Software Development - Design Strategies

  • 1. An Introduction To Software Development Using Python Spring Semester, 2015 Class #8: Design Strategies
  • 2. Homework #1 • Title: Lakeland Hospital Patient Collection Application
  • 3. Homework #1: Fred Johnson Johnson,Fred,N,2763 Filibuster Drive,Lakeland,FL,37643,M,05/27/1935,Y,164-55-0726,1234567890
  • 4. Homework #1: Betty Williams Williams,Betty,L,701 Collage Avenue,Orlando,FL,31234,F,11/27/1971,N,948-44-1038
  • 5. Homework #1: Hector Ling Ling,Hector,X,1500 Raceway Lane,Tampa,FL,32785,M,10/17/2003,Y,193-74-0274, Smith, John
  • 6. Dating Is HARD! Let’s Create Software To Help Track Things • Need to account for multiple dates with the same person. • Different things are done on different dates • Food is a critical part of every date Image Credit: thisdateisover.com
  • 7. But What About Flowers? Every Date Needs Flowers! • If we decide that dates need flowers, then we’re going to have to change our code • Every date needs different types of flowers • Flowers are used at different points in different dates Image Credit: www.clipartpanda.com
  • 8. Our Design Has A Problem! • When we add a behavior, like including flowers, we end up making a lot of changes in different places. • What seemed like a simple change (include flowers) ended up making multiple changes in multiple places. Image Credit: www.clipartpanda.com
  • 9. Our Design Is Breaking The Single Responsibility Principal • Single Responsibility Principal: Every object in your system should have a single responsibility and all of the object’s services should be focused on carrying out that single responsibility. • When we add support for flowers we have to go back and mess with all three date actions. • How would we handle adding support for jewelry, a concert, or a sleepover? Image Credit: kenmorebranch.akronlibrary.org
  • 10. The Ripple Effect Is BAD! • The ripple effect occurs when one small change to your software causes a ripple of changes throughout your software. Image Credit: qwerty2jam.wordpress.com
  • 11. You Want To Create DRY Code • DRY: Don’t Repeat Yourself • Avoid having any duplicate code in your software. Abstract or separate out things that are common and place them in a single location. • DRY is about having each piece of information and behavior in your system in a single sensible place. Image Credit: www.graphicsfactory.com
  • 12. What We Covered Today 1. Good design strategies 2. Why grouping code into segments makes sense 3. Single Responsibility Principal 4. D.R.Y. Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
  • 13. What We’ll Be Covering Next Time 1. Version Control 2. Configuration Mgmt Software Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/

Editor's Notes

  1. New name for the class I know what this means Technical professionals are who get hired This means much more than just having a narrow vertical knowledge of some subject area. It means that you know how to produce an outcome that I value. I’m willing to pay you to do that.