1. Globalcode – Open4education
Robustez de Software
Como ouvir menos reclamações dos seus chefes
David Robert Camargo de Campos
Mestre em Ciência da Computação
3. (1) Lei de Murphy
(2) Robustez de Software
(3) Graceful Degradation
(4) Lei de Postel
(5) Bom Desing e Reuso
(6) Combatendo Complexidade
(7) Lei de Demeter
(8) Código Legado
Agenda
8. Nem sempre as premissas que
nós (desenvolvedores)
assumimos como válidas, sempre
serão válidas
9. 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
10. Robustez X Precisão
Precisão: Habilidade
de executar as tarefas
para as quais foi
definido nos requisitos
Robustez: Habilidade
de funcionar mesmo
em situações anormais
11. {
"cliente":
{
"nome" : "Jonathan Bruce Postel",
"data_nascimento" : "06 de agosto de 1943",
"nacionalidade" : "Estadunidense",
"profissao" : "Cientista da computação"
}
}
13. Faz sentido o invocador do método ter que
conhecer a JSONException?
Faz sentido lançar uma exceção só por
não ter a naturalidade no JSON?
14. Graceful Degradation
(Degradação Graciosa)
Permite que o sistema continue a operar adequadamente no
caso de falhas de alguns dos seus componentes
A redução de qualidade é proporcional à gravidade da falha
26. Lei de Demeter
É um conjunto de regras para
construir sistemas visando baixo
acoplamento
Princípio do Mínimo Conhecimento
(Principle of Least Knowledge)
46. Onde saber mais?
RFC 793 - http://goo.gl/SeHUp
Artigo: Mocks Aren't Stubs - http://goo.gl/ffcLX
Video: Design de Software: As técnicas esquecidas http://goo.gl/1n42E
Wikipédia: Law of Demeter - http://goo.gl/PY8cm
Wikipédia: Fault-tolerant system - http://goo.gl/fS5PO
Livro: Working Effectively with Legacy Code - http://goo.gl/358zH
Livro: Introdução à Arquitetura e Design de Software - http://goo.gl/uECTc
Slides: Design de Código Qualidade a longo prazo - http://goo.gl/IDySH
Blog: Law Of Demeter - http://goo.gl/Ahh9D