No Country For If Else
This article is also available in english
C’è un ospite indesiderato che ci accompagna sempre mentre scriviamo codice e realizziamo progetti software: si tratta del codice già esistente, e dobbiamo tener conto della sua complessità man mano che la code base aumenta di dimensioni. Un’elevata complessità del codice può rendere le seguenti attività particolarmente difficili:
- comprendere il significato di codice vecchio, scritto da altri o da se stessi;
- tracciare le cause di bug, cioè errori, nel codice;
- eseguire modifiche a una certa procedura;
- aggiungere funzionalità a strutture già esistenti;
Anche approcciando lo sviluppo di nuovo software con metodologie agili, dobbiamo comunque fare i conti con il codice esistente, e per farlo dobbiamo almeno essere in grado di comprenderlo senza sforzi eccessivi. Dunque quando parlo di complessità mi riferisco in particolare alla difficoltà con la quale una programmatore è in grado di ragionare sul codice. La prefazione del noto testo accademico Structure and interpretation of computer programs contiene la seguente frase: