Cos'è la programmazione difensiva?
E' una tecnica che rende i programmi più facili da scrivere e mantenere.
Tanto per fare un esempio, uno stupidissimo programma in Pascal.
Program Programma;
procedure ReadString(Label : String;var S : String);
begin
write(Label+': ');
readln(S);
end;
procedure GetFirstName(var S: String);
begin
ReadString('First name',S);
end;
procedure GetLastName(var S : String);
begin
ReadString('Last name',S);
end;
var FName,LName : String;
begin
GetFirstName(FName);
GetLastName(LName);
write('First name is '''+FName+' '' and Last name is '''+LName+'''');
end.
Ecco, questo programma illustra bene quello che intendo.
Anzitutto, c'è una procedura(per i ragazzi abituati al C: una void function) che prende due parametri: una etichetta di tipo stringa che rappresenta il messaggio da visualizzare ed una variabile S che conterrà il dato letto.
Il nome dice bene cosa fà: legge una stringa. Non ci si può sbagliare. I parametri indicano bene a cosa servono.
Impossibile sbagliarsi.
Ce ne sono altre due che si appoggiano ad essa e diminuiscono il numero dei parametri: da due si passa ad uno, mentre l'altro viene riempito al volo. Semplice e molto, molto, molto chiaro.
Infine ci sono le due variabili: mentre si vanno ad utilizzare è difficilissimo sbagliarsi e mettere LName al posto di FName, perché basta rifarsi ai nomi dei metodi.
Queste sono le "basi" della programmazione difensiva... ma se vorrete, si può anche vedere dell'altro...
Ciao,
Andrea