Quella che stai per leggere è la recensione del libro L’arte del Refactoring (Apogeo Libri), un libro che Martin Fowler scrisse, nella prima versione originale, ben diciotto anni fa e che ora ha deciso di rielaborare per i nostri tempi.
Se ancora non lo sai Martin Fowler è una personalità nel nostro ambiente, è considerato uno dei massimi esperti di object oriented programming nonchè, insieme a Kent Beck, uno dei padri dell’extreme programming e dell’agile methodology, dai una occhiata al suo blog.
Indice
Ecco la recensione di L’arte del Refactoring
Titolo: L’arte del Refactoring – Guida alle tecniche per migliorare il design e la leggibilità del codice
Autore: Martin Fowler
Editore: Apogeo Libri
Anno pubblicazione: 2019 Ed.Italiana
ISBN: 978-8850334834
Il libro si compone di 351 pagine al netto di Indice, Introduzione, Bibliografia e poche pagine di appendice; come in tutte le mie recensioni puoi decidere di acquistare il libro da Amazon cliccando direttamente sui link che trovi nell’articolo.
Veniamo al dunque.
Di cosa parla L’arte del Refactoring
Il Refactoring è il processo che consente di modificare il codice di un software già scritto per renderlo il più possibile esente da errori introdotti durante le varie fasi di modifica e integrazione di funzionalità, oltre a renderlo più chiaro e leggibile da un essere umano.
Il libro è un elenco di appunti che Martin Fowler ha preso nel tempo e che, secondo sue parole, userebbe ogni volta che effettua l’attività di Refactoring.
I contenuti di L’arte del Refactoring
Il libro consta di 12 capitoli per un totale, come dicevo all’inizio, di circa 351 pagine.
La curiosità principale in questo libro è che Martin Fowler ha deciso di piazzare l’esempio portante nel primo capitolo; il libro è scritto per sviluppatori professionisti, ossia quelle persone che per lavoro sviluppano software, se si ha un pò di esperienza maturata nel campo non è strettamente necessario leggere completamente questo libro.
Vediamo perchè.
Parte Prima
Il primo capitolo, Refactoring: un primo esempio, come dicevo poche righe fa, è il nucleo centrale del libro.
Qui è contenuto il codice di esempio principale, infatti leggendo questo capitolo ti farai una idea di cosa è il Refactoring; Martin Fowler parte da un breve esempio e immaginandolo in un ambito reale, di produzione, con centinaia di righe di codice, inizia a farti riflettere su come potrebbe essere rifattorizzato e ne mostra il processo.
Leggendo il secondo capitolo, Principi del refactoring, ne comprenderai i motivi, ossia perchè si ha necessità di praticare questa attività.
E’ un capitolo di definizioni, l’autore definisce il refactoring e spiega quali sono i problemi che possono sorgere; in un piccolo paragrafo Fowler spiega cosa si intende per Yagni e la difficoltà a fare refactoring di codice legacy.
Il terzo capitolo, Quando il codice “puzza”, è scritto insieme a Kent Beck e con nomi di paragrafi insoliti e a volte divertenti cercano di spiegare quando è il momento di fare refactoring.
Il quarto capitolo, Costruire test, è dedicato appunto alla realizzazione di codice fatto per testare altro codice; Martin Fowler puntualizza il valore che ha il codice che testa se stesso con esempi di codice Javascript collegati all’esempio del primo capitolo.
Parte Seconda
Dal quinto capitolo in poi, Introduzione al catalogo, il libro diventa un catalogo del refactoring; come ho scritto all’inizio l’ingrediente principale contenuto nelle pagine è la serie di appunti che l’autore ha collezionato negli anni.
Quindi il sesto capitolo, Un primo gruppo di rifattorizzazioni, è impostato su piccoli esempi di codice in cui Fowler illustra i numerosi insiemi per il refactoring; Extract e Inline Function, Change Function e Encapsulate Variable sono alcuni dei nomi delle tecniche spiegate.
Il settimo capitolo, Incapsulamento, è dedicato ai metodi che applicano l’incapsulamento come strumento per rifattorizzare.
Con questo capitolo si conclude la prima parte dei metodi di refactoring che si occupano di creare, eliminare e cambiare i nomi ai vari elementi di un programma.
Acquista L’arte del Refactoring – Guida alle tecniche per migliorare il design e la leggibilità del codice di Apogeo Libri
Parte Terza
Con l’ottavo capitolo, Spostamento di funzionalità, inizia la seconda parte dei metodi di rifattorizzazione, ossia quelli dedicati a spostare elementi da un context all’altro; ho trovato interessanti questi tre tipi: Split Loop per garantire che un ciclo faccia una sola cosa, Replace Loop with Pipeline per eliminare un ciclo e Remove Dead Code. L’ultimo lo scopri leggendo il libro.
Per Martin Fowler (ma non solo per lui) l’Organizzazione dei dati gioca un ruolo fondamentale nei nostri software, quindi il nono capitolo contiene un pò di metodi di refactoring soprattutto targetizzati sul rename di variabili e sulla confusione fra riferimenti e valori.
La Semplificazione della logica condizionale è oggetto del decimo capitolo, spesso la complessità risiede nei flussi logici condizionali e questo determina difficoltà di comprensione del codice.
Quindi anche in questo caso occorre fare refactoring e Fowler dedica quasi quaranta pagine fornendo i metodi che lui stesso applica correntemente nei progetti.
Anche le API non sono esenti dalla rifattorizzazione, infatti l’undicesimo capitolo mostra come semplificare quelle che l’autore definisce le articolazioni che collegano i moduli e le funzioni di un software, anche qui trenta pagine non sono poche.
L’ultimo capitolo, il dodicesimo, è per la Gestione dell’ereditarietà; come sappiamo tutti l’ereditarietà è uno dei concetti base dell’object oriented programming e spesso viene utilizzato troppo, quindi anche per questo argomento Martin Fowler suggerisce metodi per spostare funzioni in alto o in basso nella gerarchia dell’ereditarietà, eliminarle o aggiungerle.
Conclusioni
Spero tu abbia trovato interessante e soprattutto utile leggere questa recensione. Ora, se vuoi, acquista L’arte del Refactoring – Guida alle tecniche per migliorare il design e la leggibilità del codice di Apogeo Libri, puoi farlo cliccando direttamente sul link o sulle copertine del libro che vedi nella pagina.
Prima di lasciarti ti segnalo le seguenti recensioni:
L’arte del Rilascio, un libro che racconta fallimenti nel deploy del software e tecniche per evitarli;
Clean Architecture, un libro che insegna la progettazione software in maniera corretta;
Clean Code, un libro per imparare a scrivere codice pulito.
Grazie per il tempo che hai dedicato a questa lettura!
Aspetti Positivi
L’arte del Refactoring (Apogeo Libri) è un libro che va letto quando serve, non è un libro che si legge dall’inizio alla fine, come i manuali che insegnano un linguaggio o roba del genere.
Ha un taglio tecnico medio/avanzato e quindi si rivolge a sviluppatori che hanno realizzato software completi. Gli esempi sono tutti in Javascript per scelta dell’autore.
Aspetti Negativi
Forse l’esempio principale, quello del primo capitolo, è un pò troppo corto e l’autore si affida alla fantasia del lettore per immaginare l’esempio posto in dimensioni maggiori. Sarebbe stato meglio includere un codice di esempio più lungo.
Acquista L’arte del Refactoring – Guida alle tecniche per migliorare il design e la leggibilità del codice di Apogeo Libri
🔥412 volte è stato letto questo articolo