SlideShare une entreprise Scribd logo
SOLID na vida real!
Fundamento das boas práticas
ETC - EASIER TO CHANGE
Como alcançar?
Bons Nomes
SOLID
Design Patterns
Por Que SOLID?
Dificuldade na testabilidade;
Código macarrônico sem estrutura ou padrão;
Dificuldades de isolar funcionalidades; -
Fragilidade, o código quebra facilmente em
vários pontos após alguma mudança.
Problemas reais
Systema de vendas de produtos
Calculo de taxas e impostos
S - Single-responsibility
Principle
S - Single-responsibility Principle
O - Open-closed Principle
Quando você tem que reescrever partes de uma
funcionalidade para adicionar novas features
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
O - Open-closed Principle
D - Dependency Inversion
Principle
D - Dependency Inversion Principle
D - Dependency Inversion Principle
D - Dependency Inversion Principle
D - Dependency Inversion Principle
D - Dependency Inversion Principle
L - Liskov Substitution
Principle
A classe/interface base, deve conter apénas o que
realmente será compartilhado com os seus
subtipos. A classe filha sempre podera se passar
pela classe pai.
L - Liskov Substitution Principle
L - Liskov Substitution Principle
L - Liskov Substitution Principle
L - Liskov Substitution Principle
L - Liskov Substitution Principle
L - Liskov Substitution Principle
L - Liskov Substitution Principle
I - Interface Segregation
Principle
I - Interface Segregation Principle
I - Interface Segregation Principle
I - Interface Segregation Principle
Dúvidas?

Contenu connexe

Similaire à SOLID na Vida Real

Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
Cesar Vilarim
 
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Domingos Teruel
 
Revolução Go TDC 2016
Revolução Go TDC 2016Revolução Go TDC 2016
Revolução Go TDC 2016
Tomas Cretella Foglio
 
Apres s4
Apres s4 Apres s4
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
Eduardo Pires
 
Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?
Sensedia
 
Workshop Bny Mellon
Workshop   Bny MellonWorkshop   Bny Mellon
Workshop Bny Mellon
Tullio Bertoldi Christianini
 
Dojo solid
Dojo solidDojo solid
Dojo solid
jeffersonmc2
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
DanielChristofolli
 
como esta a arquitetura do seu app?
como esta a arquitetura do seu app?como esta a arquitetura do seu app?
como esta a arquitetura do seu app?
tdc-globalcode
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
Emmanuel Neri
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
qualidade de código: boas práticas, princípios e padrões
qualidade de código: boas práticas, princípios e padrõesqualidade de código: boas práticas, princípios e padrões
qualidade de código: boas práticas, princípios e padrões
edgarddavidson.com
 
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
Guilherme Motta
 
Fernando Melo- SLOW Networking - 12.02.15
Fernando Melo- SLOW Networking - 12.02.15Fernando Melo- SLOW Networking - 12.02.15
Fernando Melo- SLOW Networking - 12.02.15
Jorge Basto Sobreira
 
TDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - FloripaTDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - Floripa
Walmyr Lima e Silva Filho
 
Ágil em escala salvando grandes projetos - TDC 2017
Ágil em escala salvando grandes projetos - TDC 2017Ágil em escala salvando grandes projetos - TDC 2017
Ágil em escala salvando grandes projetos - TDC 2017
Carlos Eduardo Polegato
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
Eric Lemes
 
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
Klederson Bueno
 

Similaire à SOLID na Vida Real (20)

Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 
Revolução Go TDC 2016
Revolução Go TDC 2016Revolução Go TDC 2016
Revolução Go TDC 2016
 
Apres s4
Apres s4 Apres s4
Apres s4
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?Modelo Canônico: Vilão ou Mocinho?
Modelo Canônico: Vilão ou Mocinho?
 
Workshop Bny Mellon
Workshop   Bny MellonWorkshop   Bny Mellon
Workshop Bny Mellon
 
Dojo solid
Dojo solidDojo solid
Dojo solid
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Princípios de Programação Orientada a Objetos Solid, dry e kiss
Princípios de Programação Orientada a Objetos Solid, dry  e kiss Princípios de Programação Orientada a Objetos Solid, dry  e kiss
Princípios de Programação Orientada a Objetos Solid, dry e kiss
 
como esta a arquitetura do seu app?
como esta a arquitetura do seu app?como esta a arquitetura do seu app?
como esta a arquitetura do seu app?
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
qualidade de código: boas práticas, princípios e padrões
qualidade de código: boas práticas, princípios e padrõesqualidade de código: boas práticas, princípios e padrões
qualidade de código: boas práticas, princípios e padrões
 
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
[TDC 2015] Pretotyping: como construir "a coisa" certa antes de construir cer...
 
Fernando Melo- SLOW Networking - 12.02.15
Fernando Melo- SLOW Networking - 12.02.15Fernando Melo- SLOW Networking - 12.02.15
Fernando Melo- SLOW Networking - 12.02.15
 
TDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - FloripaTDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - Floripa
 
Ágil em escala salvando grandes projetos - TDC 2017
Ágil em escala salvando grandes projetos - TDC 2017Ágil em escala salvando grandes projetos - TDC 2017
Ágil em escala salvando grandes projetos - TDC 2017
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
 
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
Pragmatismo e Padroes - Um limiar tenue entre o sucesso e o fracasso do seu p...
 

Plus de Cristiano Cunha

Documentação profissional com C4 Model - GDG Dev Fest 2023
Documentação profissional com C4 Model - GDG Dev Fest  2023Documentação profissional com C4 Model - GDG Dev Fest  2023
Documentação profissional com C4 Model - GDG Dev Fest 2023
Cristiano Cunha
 
C4 Model
C4 ModelC4 Model
C4 Model
Cristiano Cunha
 
Redis e Estratégias Cache Distribuído
Redis e Estratégias Cache DistribuídoRedis e Estratégias Cache Distribuído
Redis e Estratégias Cache Distribuído
Cristiano Cunha
 
Event Sourcing e CQRS
Event Sourcing e CQRSEvent Sourcing e CQRS
Event Sourcing e CQRS
Cristiano Cunha
 
Dicas de oratória para apresentações
Dicas de oratória para apresentaçõesDicas de oratória para apresentações
Dicas de oratória para apresentações
Cristiano Cunha
 
Introdução a Mensageria com RabbitMQ
Introdução a Mensageria com RabbitMQIntrodução a Mensageria com RabbitMQ
Introdução a Mensageria com RabbitMQ
Cristiano Cunha
 
Bancos De Dados NoSQL
Bancos De Dados NoSQLBancos De Dados NoSQL
Bancos De Dados NoSQL
Cristiano Cunha
 
Estrategias de Cache Distribuidos com Redis
Estrategias de Cache Distribuidos com RedisEstrategias de Cache Distribuidos com Redis
Estrategias de Cache Distribuidos com Redis
Cristiano Cunha
 
OTP - One Time Password
OTP - One Time PasswordOTP - One Time Password
OTP - One Time Password
Cristiano Cunha
 
Systemas Distribuídos
Systemas DistribuídosSystemas Distribuídos
Systemas Distribuídos
Cristiano Cunha
 
Cultura de testes
Cultura de testesCultura de testes
Cultura de testes
Cristiano Cunha
 
Git alem do basico
Git alem do basicoGit alem do basico
Git alem do basico
Cristiano Cunha
 
Programacao para nao programadores
Programacao para nao programadoresProgramacao para nao programadores
Programacao para nao programadores
Cristiano Cunha
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguica
Cristiano Cunha
 
Uma maravilha chamada vue.js
Uma maravilha chamada vue.jsUma maravilha chamada vue.js
Uma maravilha chamada vue.js
Cristiano Cunha
 
Seguranca para desenvolvedores
Seguranca para desenvolvedoresSeguranca para desenvolvedores
Seguranca para desenvolvedores
Cristiano Cunha
 
Git Além do básico
Git Além do básicoGit Além do básico
Git Além do básico
Cristiano Cunha
 
Boas praticas - Muito além de linhas de código
Boas praticas - Muito além de linhas de códigoBoas praticas - Muito além de linhas de código
Boas praticas - Muito além de linhas de código
Cristiano Cunha
 
Da para trabalhar com c# no linux?
Da para trabalhar com c# no linux?Da para trabalhar com c# no linux?
Da para trabalhar com c# no linux?
Cristiano Cunha
 
Testes unitários
Testes unitáriosTestes unitários
Testes unitários
Cristiano Cunha
 

Plus de Cristiano Cunha (20)

Documentação profissional com C4 Model - GDG Dev Fest 2023
Documentação profissional com C4 Model - GDG Dev Fest  2023Documentação profissional com C4 Model - GDG Dev Fest  2023
Documentação profissional com C4 Model - GDG Dev Fest 2023
 
C4 Model
C4 ModelC4 Model
C4 Model
 
Redis e Estratégias Cache Distribuído
Redis e Estratégias Cache DistribuídoRedis e Estratégias Cache Distribuído
Redis e Estratégias Cache Distribuído
 
Event Sourcing e CQRS
Event Sourcing e CQRSEvent Sourcing e CQRS
Event Sourcing e CQRS
 
Dicas de oratória para apresentações
Dicas de oratória para apresentaçõesDicas de oratória para apresentações
Dicas de oratória para apresentações
 
Introdução a Mensageria com RabbitMQ
Introdução a Mensageria com RabbitMQIntrodução a Mensageria com RabbitMQ
Introdução a Mensageria com RabbitMQ
 
Bancos De Dados NoSQL
Bancos De Dados NoSQLBancos De Dados NoSQL
Bancos De Dados NoSQL
 
Estrategias de Cache Distribuidos com Redis
Estrategias de Cache Distribuidos com RedisEstrategias de Cache Distribuidos com Redis
Estrategias de Cache Distribuidos com Redis
 
OTP - One Time Password
OTP - One Time PasswordOTP - One Time Password
OTP - One Time Password
 
Systemas Distribuídos
Systemas DistribuídosSystemas Distribuídos
Systemas Distribuídos
 
Cultura de testes
Cultura de testesCultura de testes
Cultura de testes
 
Git alem do basico
Git alem do basicoGit alem do basico
Git alem do basico
 
Programacao para nao programadores
Programacao para nao programadoresProgramacao para nao programadores
Programacao para nao programadores
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguica
 
Uma maravilha chamada vue.js
Uma maravilha chamada vue.jsUma maravilha chamada vue.js
Uma maravilha chamada vue.js
 
Seguranca para desenvolvedores
Seguranca para desenvolvedoresSeguranca para desenvolvedores
Seguranca para desenvolvedores
 
Git Além do básico
Git Além do básicoGit Além do básico
Git Além do básico
 
Boas praticas - Muito além de linhas de código
Boas praticas - Muito além de linhas de códigoBoas praticas - Muito além de linhas de código
Boas praticas - Muito além de linhas de código
 
Da para trabalhar com c# no linux?
Da para trabalhar com c# no linux?Da para trabalhar com c# no linux?
Da para trabalhar com c# no linux?
 
Testes unitários
Testes unitáriosTestes unitários
Testes unitários
 

SOLID na Vida Real