A Jornada de um desenvolvedor de Princípios SOLID em um mundo de micro-services
Princípios SOLID
-
Upload
edmilson-filho -
Category
Technology
-
view
1.319 -
download
1
description
Transcript of Princípios SOLID
S O L I D
Edmilson Lani
• Desenvolvedor.• Capixaba residente no
Rio de Janeiro.• Pouco mais de 1 ano de PU.• Time de App Services.• Flamengo.• www.flamengorj.com.br
S O L I D
Fato
• Fazer software NÃO é fácil.• Fazer software bem projetado para
ser mantido é ainda mais complicado.
S O L I D
Ufa!
• Não é necessário ser nenhum gênio.Mas...• Como profissionais temos
obrigação de estudar constantemente.
S O L I D
SOLID Principles
Single responsibility
Open/closed
Liskov substitution
Interface segregation
Dependency inversion
SOLID
S O L I D
O que é?
• Robert C. Martin (“Uncle Bob”) • Início dos anos 2000• Conjunto de boas práticas
Curiosidade: O termo SOLID não foi inventadopor Uncle Bob.
S O L I D
SRP
Princípio da Responsabilidade Única“Nunca deve haver mais do que uma razão para
uma classe de mudar”
S O L I D
SRP - Benefícios
Mudanças vão acontecer• Menos responsabilidade, menos dificuldade• Baixo acoplamento• Facilidade de leitura do código
S O L I D
OCP
Princípio do Aberto/Fechado“Entidades de software (classes, módulos,
funções, etc) devem ser abertas para extensão, mas fechadas para modificação”
Bertrand Meyer
S O L I D
LSP
Princípio da Substituição de Liskov“Deve ser possível substituir uma classe base
por suas classes derivadas”
Barbara Liskov e Jeannette Wing
S O L I D
ISP
Princípio de Segregação de Interface“Clientes não devem ser forçados a depender de
interfaces que eles não vão usar”
S O L I D
ISP – Já viu isso?
OBS.: Espero que pelo menos nãotenha sido no Internet Explorer
throw new NotImplementedException();
S O L I D
ISP - Benefícios
• Facilitar a implementação de interfaces.• Ter interfaces mais específicas (SRP, certo? ).
S O L I D
DIP
Princípio de Inversão de Dependência“Módulos de alto nível não deve depender de
módulos de baixo nível. Ambos devem depender de abstrações.”
“Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações.”
S O L I D
DIP - Benefícios
• Sistema desacoplado e flexível.• Código testável.• Facilidade de mudança.
S O L I D
Guideline
• Princípios e padrões são itens de boas práticas.
• Avaliar a situação antes de aplicar.• Prós e contras.
S O L I D
Referências
• Wikipedia: http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
• Blog Vinícius Quaiato: http://viniciusquaiato.com/• Blog Lambda3: http://blog.lambda3.com.br• .Net Architects Podcast: http://podcast.dotnetarchitects.net