: Home :: Competenze :: Applicazioni :: Articoli :: Recensioni :: Wallpapers :: Links :: AJAX Chat :: LabGL (NEW) :: admin@damix.it :

Recensione: Design Patterns - Elementi per il riuso di software a oggetti - Prima edizione italiana

CopertinaCopertina di Design Patterns - Elementi per il riuso di software a oggetti - Prima edizione italiana
AutoreGamma, Helm, Johnson, Vlissides
CategoriaIngegneria del software
TitoloDesign Patterns - Elementi per il riuso di software a oggetti - Prima edizione italiana
Titolo originaleDesign Patterns - Elements of Reusable Object-Oriented Software - 1st edition
EditorePearson/Addison Wesley
Editore originalePearson/Addison Wesley
Anno di pubblicazione2002
Anno di pubblicazione originale1995
Pagine395
Prezzo39,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

Voto 98% 98%
Valid XHTML 1.0 Strict Valid CSS!