Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Programming HTML5 Applications
Recensito da Filippo Matteo Riggio il 14-03-2012 ore 07:16
Copertina ISBN: 9781449399085
Autori: Zachary Kessin
Editore: O'Reilly
Lingua: Inglese
Anno: 2011
Pagine: 142
Allegati: Nessuno
"Programming HTML5 Applications" è un libro edito da O'Reilly, che parla dell'evoluzione a cui sta andando incontro il Web, attraverso la descrizione delle nuove caratteristiche di HTML5 ed ECMAScript5.

L'autore israeliano Zachary Kessin è uno sviluppatore di applicazioni web interattive dal lontano '94: esperto di JavaScript, negli anni si è specializzato nella creazione di mashup nei linguaggi principali orientati al Web — PHP e JavaScript — attraverso tecniche di programmazione avanzate quali la programmazione funzionale.

Il lettore viene accompagnato nella conoscenza dell'organismo evolutivo che è il Web, delle nuove specifiche proposte che vengono dal W3C in collaborazione con Google, Microsoft e gli altri big del Web. Orientato a programmatori di livello medio ed esperto, il testo introduce le nuove tecnologie e i nuovi strumenti che tra qualche anno saranno standard.

Il libro è composto da 10 capitoli, ognuno dei quali organizzato in paragrafi con degli inserti che contengono suggerimenti o avvertimenti. All'inizio di ogni capitolo è presente una prefazione che introduce l'argomento che verrà approfondito. L'indice generale suggerisce la locazione delle varie sezioni con titoli delle suddette alquanto esaustivi. Alla fine del libro è presente un'appendice degli strumenti JavaScript più usati e utili durante la fase di sviluppo.
L'indice analitico aiuta il lettore nelle fasi di ricerca.

Il libro non ha una vera e propria modalità di lettura: si può passare da una lettura cursoria a una lettura selettiva. I capitoli non sono strutturati in modo standard, ma cambiano di volta in volta, tuttavia sono molto discorsivi e si leggono piacevolmente.

Il capitolo 1 è una breve introduzione su come sta cambiando il mondo del Web, sulle sue potenzialità e sul trionfo di JavaScript come linguaggio principe di questa evoluzione. La panoramica che però viene data non è, a mio parere, del tutto completa, in quanto non accenna minimamente allo sviluppo mobile, vera spina dorsale di questa evoluzione.

Il capitolo 2 è fondamentale: in esso vengono descritte tecniche avanzate di programmazione con JavaScript: I/O "nonbloccante", funzioni di callback, funzioni lambda, closure, programmazione funzionale, prototipi e oggetti. La nota stonata di questo capitolo riguarda le conoscenze di base su JavaScript, la cui mancanza limita non poco la comprensione dell'argomento.

Molto interessante, a mio avviso, è il terzo capitolo, in cui l'autore descrive vari sistemi di testing per JavaScript. Pochi fronzoli e una narrazione concisa rendono piacevole la lettura. I paragrafi relativi a "Selenium IDE Test Case" sono molto accurati. Già in passato mi ero imbattuto in questo strumento, non approfondendolo molto visto che a un primo approccio le potenzialità restano nascoste. In una ventina di pagine, Kessin mostra come ormai JavaScript venga considerato un linguaggio a tutti gli effetti.

Il capitolo quarto presenta un argomento molto interessante: il Local Storage, uno strumento utile nell'ambito delle webapp. L'unica pecca riguarda gli esempi, in cui l'autore usa un framework poco conosciuto (Ext.js) invece di jQuery.

Il quinto capitolo presenta in modo molto semplice IndexedDB, una nuova tecnologia che permette di costruire database sul client accessibile tramite JavaScript. I vari metodi di gestione dei record e degli indici sono spiegati con chiari esempi dimostrativi. Non sarebbe stata una cattiva idea introdurre i database NoSQL. Come si sa, molte funzionalità di HTML5 non sono supportate da tutti i browser, quindi l'argomento trattato ci tornerà utile in futuro.

Il capitolo sesto fornisce i concetti di base per la gestione del file system da parte di web application; risulta essere di fondamentale importanza in quanto oggigiorno una webapp che si rispetti lavora su file di grosse dimensioni (video e foto editing, musica, giochi, ecc.). I possibili percorsi che Kessin presenta sono 2: utilizzare le risorse del client senza stressare ulteriormente il server oppure, come purtroppo funziona tutt'ora, utilizzare le risorse del server per le fasi di elaborazione. I paragrafi sono scritti molto bene, concisi e con poche "infiocchettature".

Il settimo capitolo, "Take it Offline", parla della gestione dei contenuti web in assenza di rete. Questo è un argomento che avevo già trattato internamente all'azienda in cui lavoro ed è risultato essere uno strumento utilissimo per il mobile web. Quasi tutti i siti ad alto rendimento di performance, Google e Yahoo! per citarne alcuni, implementano questa tecnologia. L'unione di quest'ultima e del responsive design rappresenta l'evoluzione più recente del Web.

Il capitolo ottavo descrive uno strumento ereditato da Google Gears e presente nelle nuove specifiche HTML5 : i Web Workers: essi permettono una programmazione multithread con JavaScript. Il paragrafo introduttivo e la gestione della comunicazione del main thread con i processi figli viene spiegata esaustivamente. I paragrafi relativi ai casi d'uso sono proprio superflui. Anche la scelta di utilizzare come esempio il frattale di Mandelbrot non è azzeccatissima, in quanto una dimostrazione più semplice sarebbe stata più efficace. La sezione relativa alla fase di testing è esageratamente prolissa. Senza dubbio quindi la parte più interessante è l'implementazione del design pattern per il multithread processing anche nei browser che non lo supportano.

La tecnologia dei Web Sockets, presentata nel nono capitolo, non è nulla di nuovo dato che esiste già per altri linguaggi e per altri ambienti di lavoro non legati al Web. Kessin mostra le interfacce da utilizzare per creare una connessione con socket. La fase di configurazione e descrizione del protocollo di comunicazione viene spiegata chiaramente, anche se mi chiedo perché l'autore abbia voluto usare per gli esempi l'Erlang Yaws, linguaggio non legato al Web.

L'ultimo capitolo è composto da una serie di brevi accenni ai nuovi tag HTML5, ad alcune nuove funzionalità di ECMAScript5 e ai nuovi selettori CSS3. L'argomento è parecchio ampio e non è valsa la pena di accennarlo solo brevemente. Un libro che consiglio in tal proposito è "HTML 5. Con CSS3 e ECMAScript5: espresso (Internet e web design)", che presenta in maniera essenziale tutte le nuove caratteristiche tecnologiche.

E' presente inoltre un'appendice che descrive in maniera concisa gli strumenti JavaScript maggiormente utilizzati.

In conclusione si tratta di un ottimo testo che presenta una panoramica piuttosto ampia sui recenti sviluppi delle tecnologie orientate al Web. Se un programmatore vuole conoscere, prima di acquistare il libro, gli argomenti del testo, si può affidare al sito o ad altri libri della stessa casa editrice O'Reilly.

Non è un testo consigliato a uno sviluppatore un po' più esperto, dal momento che si sofferma su aspetti di cui è probabilmente già a conoscenza. Il testo è reperibile ancora solo in lingua inglese, semplice e lineare; tuttavia le introduzioni dei vari capitoli risultano essere un po' prolisse. I vari suggerimenti e avvertimenti dell'autore sono molto utili e stimolano il lettore a ricerche personali.

Le sezioni contenenti il codice non sono chiare, sono poco commentate e spesso utilizzare gli esempi risulta pressoché impossibile (frattale di Mandelbrot docet). Per quanto riguarda la veste grafica, il tomo è gradevole, con una buona qualità della carta e una buona leggibilità dei caratteri. Immagini, tabelle e schemi sono di facile comprensione e favoriscono un veloce apprendimento del paragrafo in questione. Purtroppo, sul sito della casa editrice non sono presenti gli esempi di codice.
proIl testo dà una panoramica generale sui nuovi strumenti, che si stanno affermando; la lettura è piacevole. L'indice analitico risulta essere esaustivo ed è molto utile anche l'appendice degli strumenti JavaScript.
controFra gli aspetti negativi, o quanto meno discutibili, in primis gli esempi di codice non commentati, talvolta poco chiari e non disponibili su un sito. Il libro ha inoltre delle spiegazioni troppo "narrative" e rischia di far perdere di vista i punti chiave, che permettono un veloce apprendimento. Anche la scelta di alcuni linguaggi e librerie non mi è sembrata la migliore (Erlang Yaws, Ext.js, ecc.).
Precedente: Essential iOS Build And Release
Successiva: The Tangled Web: A Guide to Securing Modern Web Applications
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.329 secondi.