Recensione: Design Patterns - Elementi per il riuso di software a oggetti - Prima edizione italiana
| Copertina |  |
| Autore | Gamma, Helm, Johnson, Vlissides |
| Categoria | Ingegneria del software |
| Titolo | Design Patterns - Elementi per il riuso di software a oggetti - Prima edizione italiana |
| Titolo originale | Design Patterns - Elements of Reusable Object-Oriented Software - 1st edition |
| Editore | Pearson/Addison Wesley |
| Editore originale | Pearson/Addison Wesley |
| Anno di pubblicazione | 2002 |
| Anno di pubblicazione originale | 1995 |
| Pagine | 395 |
| Prezzo | 39,00 Euro |
Introduzione
Smettete di leggere questa recensione e correte a comprare questo libro! Cosa? Siete ancora lì?
Vabbè, peggio per voi, io vi ho avvertito... poi magari la vostra libreria di fiducia rimane
senza e voi idem. Ah! Ah! Roccia roccia... Ok cominciamo...
Il libro
"Design Patterns" è un libro eccellente, perchè oltre a essere ben scritto e ottimamente organizzato,
ha il merito di essere stato un'opera pionieristica; i quattro autori riunirono in una sorta di
catalogo alcune soluzioni a oggetti di problemi ricorrenti, i pattern appunto. I pattern classici,
detti anche "Pattern GOF" (da Gang Of Four, lo pseudonimo collettivo degli autori) sono 23 e sono
divisi in tre famiglie: creazionali, strutturali e comportamentali.
Il libro invece è suddiviso in 6 capitoli e 3 appendici; il primo è un capitolo di introduzione, che
spiega le motivazioni e il perché lo studio dei pattern sia fondamentale; il secondo è una discussione
riguardo alle tecniche con cui si potrebbe implementare un word processor a oggetti. Alla fine del
capitolo due saranno già stati menzionati otto pattern, e il lettore sarà stato invitato a consultare
la discussione di tali pattern nei capitoli successivi.
Ciascun capitolo centrale (3, 4, 5) tratta una diversa famiglia di pattern; ognuno di questi capitoli
si apre con una breve riflessione su alcuni aspetti caratteristici dei problemi che i pattern di quella
famiglia si propongono di risolvere e prosegue con la presentazione di tali pattern. Ogni capitolo si
chiude con un riepilogo dei pattern esaminati. Ogni pattern è descritto in media con 9-10 pagine, usando
una struttura fissa; di ogni pattern si spiega lo scopo e il modo in cui lo si potrebbe implementare in
C++; qualche volta sono presenti esempi in Smalltalk. Per la descrizione delle strutture e delle
collaborazioni vengono usate delle notazioni non proprio all'ultimo grido, tra le quali OMT per descrivere
le relazioni di ereditarietà e cognizione. In effetti l'uso di UML 2 avrebbe reso il testo più elegante,
ma alla fine credetemi se vi dico che non fa alcuna differenza; è presente anche in appendice un'introduzione a OMT,
oltre a un utilissimo glossario e a una sezione con le implementazioni di alcune classi di base (liste, iteratori e
punti geometrici) utilizzate negli esempi nei capitoli centrali.
Infine il capitolo 6 è un riepilogo generale, alquanto aulico ed elevato, forse anche troppo. La citazione
finale di Christopher Alexander (l'architetto che per primo pensò di applicare dei pattern alla costruzione
di edifici) sfiora il new-age e vi spedirà direttamente nel nirvana della progettazione a oggetti.
Gli aspetti negativi di questo libro sono pochi; a parte l'uso di notazioni grafiche non aggiornate,
la principale scelta che vi potrebbe far storcere il naso è l'uso del C++ al posto di linguaggi più
moderni come Java, Java o magari Java; infatti le scelte possibili non sono molte, perché alcuni
pattern semplicemente non hanno senso in un linguaggio debolmente tipizzato (i quali vanno per la
maggiore oggi), o comunque risultano decisamente sminuiti o banalizzati.
In conclusione
Non dico di rubarlo, ma mentite e spergiurate pur di averlo; se siete anche solo minimamente
interessati all'ingegneria del software è vostro dovere possedere una copia di questo libro.
Voto

98%