SlideShare uma empresa Scribd logo
1 de 11
Software Design Principles Navigator Internal Workshop
Old Story Clean Simple Elegant Rigid Fragile Immobile Change with Requirement Out-of-Control Dependencies
Solution Software Development = Complexity Management Change with Requirement and   Follow  Principles OCP LSP DIP ISP Clean Simple Elegant Huge but still Clean Simple Elegant
Open Close Principle (OCP) A module should be Open for Extension but Close for Modification Solution: Polymorphism
Liskov Substitution Principle (LSP) Subclasses should be Substitutable for their Base Classes
Liskov Substitution Principle (LSP) Root Cause: Is-A Fails ,[object Object],[object Object],[object Object]
Dependency Inversion Principle (DIP) Depend upon Abstractions. Don't depend upon Concretions. The Last Mile: Where to instantiate the concrete class?
Interface Segregation Principle (ISP) Many client specific interfaces are better than one general purpose interface
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Manage Complexity = Manage Dependencies Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant Clean Simple Elegant
More Principles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you

Mais conteúdo relacionado

Mais procurados

An Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of ConcernsAn Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of Concerns
Hayim Makabee
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 

Mais procurados (20)

ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up Front
 
Microservices
MicroservicesMicroservices
Microservices
 
Clean Code .Net Cheetsheets
Clean Code .Net CheetsheetsClean Code .Net Cheetsheets
Clean Code .Net Cheetsheets
 
GRASP Principles
GRASP PrinciplesGRASP Principles
GRASP Principles
 
Solid
SolidSolid
Solid
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
L12 GRASP
L12 GRASPL12 GRASP
L12 GRASP
 
Key principle of software architecture
Key principle of software architectureKey principle of software architecture
Key principle of software architecture
 
Clean code-v2.2
Clean code-v2.2Clean code-v2.2
Clean code-v2.2
 
Soild principles
Soild principlesSoild principles
Soild principles
 
From catalogues to models: transitioning from existing requirements technique...
From catalogues to models: transitioning from existing requirements technique...From catalogues to models: transitioning from existing requirements technique...
From catalogues to models: transitioning from existing requirements technique...
 
Final grasp ASE
Final grasp ASEFinal grasp ASE
Final grasp ASE
 
Tdd 4 everyone full version
Tdd 4 everyone full versionTdd 4 everyone full version
Tdd 4 everyone full version
 
An Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of ConcernsAn Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of Concerns
 
Refactoring for Software Design Smells
Refactoring for Software Design SmellsRefactoring for Software Design Smells
Refactoring for Software Design Smells
 
Principle of OOD
Principle of OODPrinciple of OOD
Principle of OOD
 
Solid OO & Clean Coding is essential to successful Agile development
Solid OO & Clean Coding is essential to successful Agile developmentSolid OO & Clean Coding is essential to successful Agile development
Solid OO & Clean Coding is essential to successful Agile development
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software Development
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 

Destaque (6)

Cobit5 introduction
Cobit5 introductionCobit5 introduction
Cobit5 introduction
 
RUP Basics
RUP BasicsRUP Basics
RUP Basics
 
A Glance At Scrum
A Glance At ScrumA Glance At Scrum
A Glance At Scrum
 
Review of code review
Review of code reviewReview of code review
Review of code review
 
Groovy Intro
Groovy IntroGroovy Intro
Groovy Intro
 
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
 kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj... kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
 

Semelhante a Software Design Principles

SOLID principles-Present
SOLID principles-PresentSOLID principles-Present
SOLID principles-Present
Quang Nguyen
 
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
CodeCamp Iasi 10 march 2012 - Scratching-SOLIDCodeCamp Iasi 10 march 2012 - Scratching-SOLID
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
Codecamp Romania
 
Solid-Principles
Solid-PrinciplesSolid-Principles
Solid-Principles
Aniket G
 

Semelhante a Software Design Principles (20)

SOLID principles-Present
SOLID principles-PresentSOLID principles-Present
SOLID principles-Present
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)
 
Solid as OOP abstraction
Solid as OOP abstractionSolid as OOP abstraction
Solid as OOP abstraction
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsDesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatterns
 
Object Oriented Programming Ch3 SRP, DIP, ISP
Object Oriented Programming Ch3 SRP, DIP, ISPObject Oriented Programming Ch3 SRP, DIP, ISP
Object Oriented Programming Ch3 SRP, DIP, ISP
 
OO Design Principles
OO Design PrinciplesOO Design Principles
OO Design Principles
 
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
CodeCamp Iasi 10 march 2012 - Scratching-SOLIDCodeCamp Iasi 10 march 2012 - Scratching-SOLID
CodeCamp Iasi 10 march 2012 - Scratching-SOLID
 
Agile design pattern
Agile design patternAgile design pattern
Agile design pattern
 
The OO Design Principles
The OO Design PrinciplesThe OO Design Principles
The OO Design Principles
 
Solid principle
Solid principleSolid principle
Solid principle
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
 
Is your code solid
Is your code solidIs your code solid
Is your code solid
 
SOLID Design principles
SOLID Design principlesSOLID Design principles
SOLID Design principles
 
Solid design principles
Solid design principlesSolid design principles
Solid design principles
 
SOLID Design Principle
SOLID Design PrincipleSOLID Design Principle
SOLID Design Principle
 
Solid Principle
Solid PrincipleSolid Principle
Solid Principle
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"
 
Solid-Principles
Solid-PrinciplesSolid-Principles
Solid-Principles
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 

Mais de Ocean Dong (7)

Software Dev Process In A Nutshell
Software Dev Process In A NutshellSoftware Dev Process In A Nutshell
Software Dev Process In A Nutshell
 
How To Write Work Mail
How To Write Work MailHow To Write Work Mail
How To Write Work Mail
 
Continuous Code Quality Improvement
Continuous Code Quality ImprovementContinuous Code Quality Improvement
Continuous Code Quality Improvement
 
Stress free email handling
Stress free email handlingStress free email handling
Stress free email handling
 
柬埔寨之旅
柬埔寨之旅柬埔寨之旅
柬埔寨之旅
 
Introduction About Lean Way
Introduction About Lean WayIntroduction About Lean Way
Introduction About Lean Way
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 

Último

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Último (20)

Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 

Software Design Principles

Notas do Editor

  1. Opening customized for each location