O documento apresenta boas práticas de programação defensiva em Java, como: documentar o código, seguir convenções de nomes, tratar erros com exceções, usar asserções para validar entradas, liberar recursos alocados, dividir métodos com muitos parâmetros e testar o código. Também discute sobre precisão versus robustez e como depurar erros no código.
Boas práticas de programação com Object Calisthenics
Programação Defensiva
1. Programação Defensiva Glaucio Scheibel Glauco Vinicius Scheffel v: 1.1 Facilidade e velocidade em fazer uma coisa não oferece a solidez duradoura ou a exatidão da beleza. - Plutarco, Vida de Péricles
21. public class Aluno extends Pessoa { // outros atributos foram ocultados private float[] n; // notas private static AlgoritmoMedia[] algoritmo = new AlgoritmoMedia[2]; static { algoritmo[0] = new MediaAritmetica(); algoritmo[1] = new MediaPonderada(pesos[]); } public float getMedia(int algoritmo) { return this.algoritmo[algoritmo].getMedia(n); } } Possui um único propósito: retornar a média Usa a convenção do JCC para nomear elementos
30. Robusteza vs Precisão Especificação Precisão Robusteza Habilidade de funcionar mesmo em situações anormais Habilidade de executar as tarefas para as quais foi definido nos requisitos
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42. E se não estiver nos limites do software ??? Especificação Precisão Robusteza