Refactoring

Martin Fowler, 2018

Chiudo il volume con un inaspettato senso di soddisfazione, se tengo in conto che Refactoring non ha un finale. Non ha neanche una storia, e per due terzi è un catalogo di tecniche. È assai raro che legga un libro di informatica. In vent'anni e più di “carriera”, ne avrò letto meno di dieci. Probabilmente ho imparato di più da documentazione ufficiale ed articoli ufficiosi, che da opere monografiche, cartacee o digitali. Ma sono assai contento di aver comprato questo.

Oltre agli effetti più evidenti, il codice di un programma definisce implicitamente una serie di premesse e confini. A volte ne siamo consci, a volte passano inosservati, ma questi presupposti definiscono e limitano la possibile evoluzione del software che stiamo scrivendo. Refactoring è la pratica—l'arte?— di modificare questi limiti, senza modificare il funzionamento del codice. Il libro cataloga numerose tecniche per evolvere il codice, descrivendone gli effetti sui limiti, ed i passi necessari per metterle in atto. Passi piccoli ma certi, scelti in modo da lasciare sempre integro il comportamento iniziale.

Refactoring è un libro rilassante, e si è rivelato quasi un calmante in un periodo teso come questa primavera, quando La Situazione ci teneva chiusi in casa, e sul lavoro (vecchio) tutto avveniva di corsa e alla meno peggio. La narrazione di ben definiti spezzoni di lavoro, nella calma voce di Martin Fowler, riportava l'intera professione nella normalità. Si fanno cose per una ragione, con metodo. L'entropia è inevitabile, ma è possibile controllarla.

A questo punto mi sono probabilmente già dimenticato i passi descritti nella maggior parte delle sezioni, ma mi resta un arsenale di concetti. Posso tornare al volume in qualsiasi momento, se mi servono i dettagli. Oppure posso leggerlo online. Il libro fisico permette l'accesso alla versione web, che è anche la versione canonica. Il volume rigido che ho comprato è solo un'istantanea del sito, e quest'ultimo continuerà ad evolversi.