SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Leonardo Amarilho
Design Functional
Fail...
Difficult to find material
Design Principles from
Functional Perspective
SOLID Principles
Single-responsablity Principle
A class should have one, and
only one, reason to
The

change.

fundamental unit
of abstraction is the function
Open/closed Principle
You should be able to extend
The

a classes bahavior,

functions can

without modify
be substituted at will.
it
Don’t need to thinking about it
Liskov substituiton Principle
Derived clases must be
Most

substitutable for their

ambitions of the
Liskov substitution are
effectively trivial in FP

base classes
Interface Segregation Principle
Make fine grained interfaces
Functions
are segregated
by default definition

that are client
specific
Dependency Inversion Principle
Depend on abstractions,
The

not on concretions

side-effect free
nature of FP provide for
dependency inversion
Conclusion
The principles are absorved by functional
language in a natural way. The OO Patterns
still exists in the function paradigm,
but the implementation details differ.
Functional programming is
more a mindset than a
particular set of tools or
language.
“Functional Thinking”
Neal Ford - IBM Developer Work Series
Principles Desing in functional perspective

Weitere ähnliche Inhalte

Ähnlich wie Principles Desing in functional perspective

Design principles in the functional world
Design principles in the functional worldDesign principles in the functional world
Design principles in the functional worldDaniel Leon
 
The Solid Principles
The Solid PrinciplesThe Solid Principles
The Solid PrinciplesLuke Smith
 
Software Design Principles
Software Design PrinciplesSoftware Design Principles
Software Design PrinciplesOcean Dong
 
SOLID Software Principles with C#
SOLID Software Principles with C#SOLID Software Principles with C#
SOLID Software Principles with C#Ken Burkhardt
 
#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui
#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui
#4 | Object Oriented Programming's SOLID Principles | Sameer SiddiquiSameerAhmedSiddiqui1
 
Solid design principles
Solid design principlesSolid design principles
Solid design principlesMahmoud Asadi
 
Agile design pattern
Agile design patternAgile design pattern
Agile design patternPoppy Martono
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsDesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsBasavaraj Patil
 
Key principle of software architecture
Key principle of software architectureKey principle of software architecture
Key principle of software architectureLilian Codreanu
 
Solid design principles
Solid design principlesSolid design principles
Solid design principlesMD. Shohag Mia
 
The tao of laravel
The tao of laravelThe tao of laravel
The tao of laravelHung Nguyen
 
OO design principle
OO design principleOO design principle
OO design principleLi-Wei Cheng
 
Principios solid con c#
Principios solid con c#Principios solid con c#
Principios solid con c#Matias Iacono
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)ASIMYILDIZ
 

Ähnlich wie Principles Desing in functional perspective (20)

Design principles in the functional world
Design principles in the functional worldDesign principles in the functional world
Design principles in the functional world
 
Applying OO Concepts
Applying OO ConceptsApplying OO Concepts
Applying OO Concepts
 
Solid
SolidSolid
Solid
 
The Solid Principles
The Solid PrinciplesThe Solid Principles
The Solid Principles
 
Software Design Principles
Software Design PrinciplesSoftware Design Principles
Software Design Principles
 
SOLID Software Principles with C#
SOLID Software Principles with C#SOLID Software Principles with C#
SOLID Software Principles with C#
 
#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui
#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui
#4 | Object Oriented Programming's SOLID Principles | Sameer Siddiqui
 
Spring fundamentals
Spring fundamentalsSpring fundamentals
Spring fundamentals
 
Solid design principles
Solid design principlesSolid design principles
Solid design principles
 
Agile design pattern
Agile design patternAgile design pattern
Agile design pattern
 
Principle of OOD
Principle of OODPrinciple of OOD
Principle of OOD
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsDesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatterns
 
Key principle of software architecture
Key principle of software architectureKey principle of software architecture
Key principle of software architecture
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Solid design principles
Solid design principlesSolid design principles
Solid design principles
 
The tao of laravel
The tao of laravelThe tao of laravel
The tao of laravel
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 
OO design principle
OO design principleOO design principle
OO design principle
 
Principios solid con c#
Principios solid con c#Principios solid con c#
Principios solid con c#
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)
 

Mehr von leopoa

Liderança e Gestão
Liderança e GestãoLiderança e Gestão
Liderança e Gestãoleopoa
 
Paradigma funcional até leigos podem entender
Paradigma funcional até leigos podem entenderParadigma funcional até leigos podem entender
Paradigma funcional até leigos podem entenderleopoa
 
Mudando cultura organizacional através da aprendizagem
Mudando cultura organizacional através da aprendizagemMudando cultura organizacional através da aprendizagem
Mudando cultura organizacional através da aprendizagemleopoa
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesleopoa
 
Management 3.0 - Cultura organizacional
Management 3.0 - Cultura organizacional Management 3.0 - Cultura organizacional
Management 3.0 - Cultura organizacional leopoa
 
Algumas práticas para desenvolvedores
Algumas práticas para desenvolvedoresAlgumas práticas para desenvolvedores
Algumas práticas para desenvolvedoresleopoa
 
Teoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic ProgrammerTeoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic Programmerleopoa
 
Refatoração
RefatoraçãoRefatoração
Refatoraçãoleopoa
 
Functional - Fundamentals and Perspective Functional vs OO
Functional - Fundamentals and Perspective Functional vs OOFunctional - Fundamentals and Perspective Functional vs OO
Functional - Fundamentals and Perspective Functional vs OOleopoa
 
list comprehension
list comprehensionlist comprehension
list comprehensionleopoa
 
currying vs partial application
currying vs partial applicationcurrying vs partial application
currying vs partial applicationleopoa
 

Mehr von leopoa (11)

Liderança e Gestão
Liderança e GestãoLiderança e Gestão
Liderança e Gestão
 
Paradigma funcional até leigos podem entender
Paradigma funcional até leigos podem entenderParadigma funcional até leigos podem entender
Paradigma funcional até leigos podem entender
 
Mudando cultura organizacional através da aprendizagem
Mudando cultura organizacional através da aprendizagemMudando cultura organizacional através da aprendizagem
Mudando cultura organizacional através da aprendizagem
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservices
 
Management 3.0 - Cultura organizacional
Management 3.0 - Cultura organizacional Management 3.0 - Cultura organizacional
Management 3.0 - Cultura organizacional
 
Algumas práticas para desenvolvedores
Algumas práticas para desenvolvedoresAlgumas práticas para desenvolvedores
Algumas práticas para desenvolvedores
 
Teoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic ProgrammerTeoria das janelas quebradas - Pragmatic Programmer
Teoria das janelas quebradas - Pragmatic Programmer
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 
Functional - Fundamentals and Perspective Functional vs OO
Functional - Fundamentals and Perspective Functional vs OOFunctional - Fundamentals and Perspective Functional vs OO
Functional - Fundamentals and Perspective Functional vs OO
 
list comprehension
list comprehensionlist comprehension
list comprehension
 
currying vs partial application
currying vs partial applicationcurrying vs partial application
currying vs partial application
 

Kürzlich hochgeladen

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Principles Desing in functional perspective