Post on 24-Dec-2014
description
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 continuapara 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