CONTRA1a jornada de um desenvolvedor de princípios SOLID
contra o impulso de usar muitos padrões ou não pensar sobre elesUM
@helmedeiros
senta que lá vem
história…
framework
MV*
princípios
design patterns
a-gi-li-ty
|əˈjilitē|
Consiste em criar software em
incrementos minúsculos.
como projetar um…
Software que tenha boa estrutura?
Software que seja flexível?
Software passível de manutenção?
Software que seja reutilizável?
who knows
who knows
who knows
who knows
Se você cria em incrementos minúsculos,
não vai perder a visão global?
projeto ágil
maus cheiros
princípios
projeto de software

um conceito abstrato
software project
|ˈsôftˌwe(ə)r ˈpräjˌekt, -ikt|
Relacionado à forma e estrutura global
do programa, assim como o detalhe
de cada módulo, classe e método.
Se tiver sorte, você começa um
projeto com uma ideia clara de
como deseja que o sistema seja. Se
tiver mais sorte ainda, a primeira
versão reflete a imagem do projeto.
projeto ágil
maus cheiros
princípios
algo dá errado

o software começa a apodrecer
como podemos detectar…
os problemas antes ou no último momento responsável?
sem exagerar nas precauções?
permitindo mudar?
RIGIDEZ: É difícil de alterar o
projeto.1
FRAGILIDADE: O projeto
(design) é fácil de estragar.2
IMOBILIDADE: É difícil
reutilizar o projeto.3
VISCOSIDADE: É difícil fazer a
coisa certa.4
COMPLEXIDADE DESNECESSÁRIA:
Projeto excessivo.5
REPETIÇÃO DESNECESSÁRIA:
Abuso do mouse.6
OPACIDADE: Expressão
desorganizada.7
por que o software apodrece…
mudanças não previstas
mudanças para ontem
desenvolvedor desconhece a filosofia inicial do projeto
requisitos sempre mudam

nossos projetos e práticas estão errados
projeto ágil
maus cheiros
princípios
aplicação continua

para melhorar a estrutura e legibilidade do software
iterativamente visando…
simplicidade no código
limpeza do código
expressividade do código
moderado
moderado
moderado
SRP: Princípio da
responsabilidade únicaS
OCP: Princípio do Aberto/
FechadoO
LSP: Princípio de substituição
de LiskovL
ISP: Princípio da Segregação
de InterfaceI
DIP: Princípio da inversão de
DependênciaD
“  as  equipes  ágeis  aplicam  os  princípios  apenas  para  
resolver  maus  cheiros.  Eles  não  são  um  perf9me  que  
deve  ser  bor<ifado  por  todo  o  sistema.  “  
- Robert C. Martin
CONTRA1a jornada de um desenvolvedor de princípios SOLID
contra seu impulso de usar muitos padrões ou não pensar sobre elesUM
@helmedeiros

Um desenvolvedor com princípios SOLID