Cos'è la programmazione difensiva?
La programmazione difensiva è la creazione di codice per software progettato per evitare problemi problematici prima che si presentino e rendano il prodotto più stabile. L'idea alla base di questo approccio è quella di creare un programma in grado di funzionare correttamente anche attraverso processi imprevisti o quando gli utenti inseriscono voci impreviste. La programmazione difensiva si basa spesso su una combinazione alquanto paradossale di eliminazione di codici non necessari garantendo al contempo la creazione di quantità sufficienti per gestire tutte le possibili azioni dell'utente. Test approfonditi sono importanti anche per questo processo, così come la creazione di software che può essere controllato e verificato facilmente.
In molti modi, il concetto di programmazione difensiva è molto simile a quello della guida difensiva, in quanto i problemi vengono considerati prima che insorgano. Un metodo comune per tentare di farlo è attraverso la creazione di codice che ha lo scopo di gestire qualsiasi possibile scenario lanciato su di esso. I programmatori in genere cercano di determinare i modi in cui è probabile che gli utenti immettano input o tentano di utilizzare software che potrebbe essere al di fuori dei parametri previsti. L'uso della programmazione difensiva si basa sulle basi del codice stesso, progettato per essere in grado di gestire input strani senza crash o incontrare un evento di errore.
Apparentemente in contrasto con questo elemento di programmazione difensiva, tuttavia, un codice ben scritto deve essere privo di voci non necessarie. Più righe di codice fanno parte di un programma, più opportunità ci sono per l'introduzione di errori. Le pratiche di programmazione difensiva in genere incoraggiano gli sviluppatori a eliminare il codice non necessario e ottimizzare i programmi ogni volta che è possibile. Occorre pertanto trovare un equilibrio tra la programmazione che tiene conto di scenari imprevisti e il codice che contiene troppi contenuti non necessari senza fornire un vantaggio.
Il test è uno degli aspetti più importanti della programmazione difensiva. Nonostante un grande sforzo per garantire che il codice sia perfetto, gli sviluppatori perdono quasi sempre un errore o creano codice con risultati imprevisti. Test approfonditi da parte di tester professionisti consentono a uno sviluppatore di avere centinaia di ore di utilizzo del prodotto per trovare errori prima che il software venga rilasciato.
Il codice stesso che viene creato nella programmazione difensiva è anche un aspetto vitale di questo processo. Non solo dovrebbe essere semplificato il più possibile, ma dovrebbe anche essere presentato in modo chiaro e conciso. I controlli sono spesso utilizzati da uno sviluppatore per rivedere il codice che è stato creato. Ciò consente ad altri programmatori di vedere il lavoro svolto e il codice leggibile è importante perché questo sia una parte realistica dello sviluppo.