dicas para deixar seu código mais robusto
TRANSCRIPT
Dicas para deixar seu código mais robusto
David [email protected]
Como se proteger?
Mas o que isso significa em software?
Nem sempre as premissas que assumimos como válidas,
sempre serão válidas
Objeto não é null
Objeto é do tipo que eu espero
Sistema externo está no ar
Resposta é bem formatada
Input do usuário é conforme o esperado
Robustez X Precisão
Graceful Degradation(Degradação Graciosa)
A redução de qualidade deve ser proporcional à gravidade da falha
"Seja conservador no que você faz, seja liberal no que você aceita dos outros"
Jonh Postel
"A função de um bom software é fazer com que o complexo pareça ser simples"
Grady Booch
ALERTA
Combatento Complexidade
Qual nosso arsenal pra isso?
Alta CoesãoBaixo Acoplamento
public class Financeiro { // ...
1 public void executarPagamentos() {2 for (Cliente cliente: clientes) {3 // ...
4 cliente.getCarteira().subtrai(valor);5 // ...8 }9 }
}
public class Financeiro { // ...
1 public void executarPagamentos() {2 for (Cliente cliente: clientes) {3 // ...
4 cliente.getCarteira().subtrai(valor);5 // ...8 }9 }
}
Lei de Demeter
É um conjunto de regras para construir sistemas visando baixo acoplamento
Princípio do Mínimo Conhecimento
Não fale com estrageiros
ou seja
Fale somente com amigos
(membros ou parametros)
produto.getCliente().getEndereco().getCEP()
porque um acidente de trem vai estragar o seu dia
produto.getCliente().getEndereco().getCEP()
É possível aplicar o princípio em todos os projetos?
“A Lei de Demeter na verdade deveria ser chamada de Sugestão de Demeter”
Martin Fowler
o mais importanteem um projeto é
escrever código bonito
o mais importanteem um projeto é
escrever código bom
Obrigado!
while42