asos de teste E declarações de asserção
O código emessa questã faça-me pensa
assert(value>0); //Precondition
if (value>0)
{
//Doit
}
Eu nunca escrevo a declaração if. Afirmar é suficiente / tudo o que vocêpod Faz. "Crash early, crash freqüentemente"
CodeComplete estados:
A declaração de asserção torna o aplicativo CorretoO teste if torna o aplicativo RobustoAcho que você não tornou um aplicativo mais robusto corrigindo valores de entrada inválidos ou ignorando o código:
assert(value >= 0 ); //Precondition
assert(value <= 90); //Precondition
if(value < 0) //Just in case
value = 0;
if (value > 90) //Just in case
value = 90;
//Doit
Essas correções são baseadas em suposições feitas sobre o mundo exterior. Somente o chamador sabe o que "é um valor de entrada válido" para sua função e deve verificar sua validade antes de chamar sua função.
Parafrasear CodeComplete: "Programas do mundo realtornar-s muito bagunçado quando nós don't confie apenas em afirmações. "
Pergunta: Estou errado, teimoso, estúpido, não defensivo demais ...