Refactoring – Martin Fowler

Questo libro non ha bisogno di grandi presentazioni. Fu il libro che negli anni novanta portò  nel mondo dello sviluppo – inteso come programmazione – il termine ‘refactoring’. Il refactoring è la pratica di ri-organizzare il codice senza cambiarne il comportamento. Un refactoring attento ma soprattutto costante porta ad una codebase e ad un progetto più manutenibile, leggibile e semplice da modificare.

Questo volume ‘storico’ scritto a più mani vede fra i coautori Kent Beck. Egli introdusse il termine ‘code smell’. Una code smell è una caratteristica che emerge dal codice ed indica un comportamento che può (probabilmente) portare a un problema.

Durante i capitoli Martin Fowler propone delle vere e proprie ‘ricette’ per una codebase con caratteristiche a dir poco invidiabili da ogni sviluppatore. Egli prima espone una serie di code smells e poi una serie di refactoring per ‘curare’ i cattivi odori del codice. Ogni code smell ha uno o più riferimenti alle specifiche tecniche di refactoring. Non dobbiamo quindi imparare a memoria cosa fare per sistemare determinati problemi, ma una prima lettura di Refactoring e la sua consultazione estemporanea ci fornisce una guida completa al processo.

La carta vincente fu dare un nome alle cose. Ogni code smell e refactoring ha un nome ben specifico, accattivante, semplice da ricordare ed esplicativo. Ancora al giorno d’oggi è semplice comunicare nel team e trovare referenze online avendo un nome facile da ricordare per ogni aspetto del refactoring.

Il libro è inoltre scritto con un linguaggio informale ma allo stesso tempo tecnico ed efficace. Capitoli iniziali introduttivi e uno conclusivo sul refactoring fungono da corollario alla pratica e forniscono indicazioni su quando attuarla, in che misura, e come portare tale mentalità in un team ma soprattutto in un ambiente meno tecnico e con funzioni vicine al business.Il volume include inoltre un breve ma ottimo capitolo centrale sui test, e su come il refactoring si intrecci con la pratica del Test Driven Development.

Un volume fondamentale per ogni sviluppatore che voglia migliorare la propria professionalità e tecnica, e amare ancora di più il proprio lavoro.

Concludo con un video a mio parere illuminante e allo stesso tempo divertente che espone i punti di forza del refactoring e del suddetto libro.

Precedente The Pragmatic Programmer - Andrew Hunt, David Thomas Successivo Collaborative Web Development - Adam Scott