Sei sulla pagina 1di 1

Autore: Michele Arpaia

Argomento: Stile e idiomi in Java

Autore Nigel Warren, Philip Bishop


Titolo Java in Practice
Editore Addison-Wesley
ISBN 0-201-36065-9
Lingua Inglese
Anno 1999
Prezzo £110000
Pagine 209
Allegati

Recensione
In mezzo alla fiumana di libri tutti rivolti alla decifrazione di quelle che ormai sono diventate una foresta di API Java
spiccano, per nostra fortuna, libri come questo del duo Warren-Bishop, i quali richiamano l’attenzione (a mio avviso
educativa) sulle questioni fondamentali di un linguaggio di programmazioni, sulle chiavi che consentono poi di
interpretare tutto il corredo del linguaggio non come un summa uniforme e piatta di classi e funzionalità. Queste chiavi
si chiamano idiomi e questo libro non ha altro scopo di esistere se non il percorrere attraverso alcuni classici idiomi di
progettazione (o meglio patterns) tradotti nel mondo Java.
In realtà il libro parte dall’inizio, dedicando i primi tre capitoli ai capisaldi dell’Object Oriented, ovvero Incapsulazione,
Ereditarietà e Polimorfismo.
Questi capitoli risulteranno squisiti anche a coloro i quali l’OO è un pasto digerito.
I capitoli successivi coprono un buon numero di casi o schemi di progettazione considerati fondanti per un progettista
Java. Ad esempio la trattazione sulle costanti e sul type safety difficilmente la si trova così ben organizzata, così come il
balancing performance che affronta alcune idiomi per la creazione on demand di oggetti. Non mancano le
implementazioni ed esempi chiari e concisi dei pattern creazionali, quali Factory Method, Abstract Factory,
Singleton,ecc. Degno di nota sono i capitoli 10 e 11, nei quali si affronta l’importante gestione delle collezioni e relativi
iteratori. Argomento talmente onnipresente in ogni buon progetto Java, tale da aver indotto una loro introduzione
formale dalla versione 2 del linguaggio della Sun. Altri argomenti trattati sono le eccezioni (finalmente un approccio a
pattern su questo argomento), le callback (dopo aver compreso le quali, pattern come Observer, o il Delegation Model
per la gestione degli eventi risulteranno una ovvietà) e il caricamento dinamico delle classi con un chiaro riferimento al
RTTI di Java.
Il vero punto di forza, e credo il sostanziale sforzo degli autori, è stato quello di corredare tutti i capitoli con una serie di
consigli e principi (non astratti!) dando al lettore un sintesi che sugglla tutta l’esperienza degli autori, i quali hanno
ritenuto opportuno suddividerli in tre tipi:

1. Regole, definiti già dalla specifica del linguaggio, richiamate quando la discussione le richiede,
2. Principi, ovvero idee testate che sono linee guida per produrre software buono seggerendo uno stile di
programmazione metodico e pulito,
3. Tips, suggerimenti pratici per giungere a soluzioni ottimali (per esempio, “Non chiamare un metodo astratto da un
costruttore”)

Pro
Si tratta di un buon libro, completo per lo scopo sebbene il numero esiguo di pagine potrebbero far pensare il contrario.
Azzeccata la scelta della sintesi attraverso l’enunciazione di principi e suggerimenti e posti ordinatamente per capitoli
nell’appendice B . Credo che ogni serio progettista Java dovrebbe averne una copia.

Contro
Difficile trovare un difetto a questo libro. Non pesa neanche la mancanza di un CD allegato.