Usiamo asserzioni per verificare comportamenti illegali che non dovrebbero accadere se tutto funziona come dovrebbe, come usare NULL
come argomento quando chiaramente non dovrebbe.
Questo è tutto molto bene quando scrivi funzioni pubbliche dato che non ti puoi fidare che il programmatore che le utilizzerà non commetterà un errore. Ma che dire delle funzioni private, che non saranno accessibili dall'esterno? Naturalmente, la funzione che usa quelle funzioni private può contenere un bug (cioè hai fatto un errore), ma dovremmo sempre usare asserzioni in funzioni private? C'è una riga in cui possiamo dire "Ehi, non abbiamo bisogno di un'affermazione qui perché, a causa delle precedenti affermazioni e dell'uso della funzione privata, possiamo supporre che i parametri siano sempre sicuri"?
Ora sono un po 'scettico riguardo a quest'ultima parte - possiamo mai presumere che le cose siano sempre come dovrebbero?