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
Pro JavaScript Techniques
Recensito da Dario Cazzato il 22-03-2012 ore 14:58
Copertina ISBN: 9781590597279
Autori: John Resig
Editore: Apress
Lingua: Inglese
Anno: 2006
Pagine: 384
Allegati: Nessuno
Intel Cluster Studio XE
JavaScript è oramai un linguaggio solido, robusto e collaudato, ma sopratutto utilizzato praticamente ovunque; tuttavia, la maggior parte degli sviluppatori web lo ha spesso visto come un semplice giocattolo. "Pro JavaScript Techniques" si propone di introdurre il lettore alla pratica di tecniche professionali, che permettano di trattare JavaScript esattamente alla stregua degli altri linguaggi di programmazione, e lo fa spiegandone le peculiarità, le best practice, l'uso di plug-in aggiuntivi e introducendo strumenti per il debugging e il testing del codice.

Il testo è dunque rivolto a un'audience composta da utenti già a conoscenza degli aspetti fondamentali del JavaScript e con l'obiettivo di apprendere, con un livello di dettaglio più ampio, il linguaggio, nonché di imparare nuove tecniche che permettano loro di scrivere del codice che risulti essere più riusabile, meno soggetto a bug, cross-browser e stabile.

L'autore, John Resig, è un vero guru del linguaggio JavaScript: è infatti creatore e lead developer della libreria jQuery, oltre a numerosi altri progetti Web-based, rappresentando già di per sé una garanzia per il lettore circa la qualità dei contenuti presentati.

Il volume contiene moltissimi esempi di codice, alcuni relativi all'utilizzo dell'argomento introdotto, talvolta di carattere didattico per illustrare dei concetti dietro una tematica o all'implementazione di una libreria consigliata, altri volutamente errati o inefficienti al fine di mostrare, per via incrementale, la versione migliorata o corretta, ma anche veri e propri snippet, metodi e mini-librerie pronti all'uso per gli sviluppatori JS. Le librerie, in particolare, sono davvero utili in quanto potrebbero immediatamente essere riproposte con soluzioni ad hoc per il nostro progetto, e quasi sempre possono essere direttamente scaricate e utilizzate così come mostrate al lettore. Inoltre, alcuni capitoli costituiscono dei veri e propri tutorial, fornendo all'utente delle mini-applicazioni già completamente funzionanti.

Lungo l'esposizione non mancano i riferimenti a link e risorse esterne, permettendo all'utente di approfondire gli argomenti sviluppati. Tutto il codice riportato nel testo è reperibile sul sito associata (sotto la voce "Code"). Nella sezione "Case Studies" vi sono invece le demo delle applicazioni mostrate nel testo. Tuttavia, segnalo che non sono riuscito a visualizzare quelle relative ai capitoli 8 e 11.

L'autore suddivide il testo in quattro parti, tre nella pratica, se si considera che l'ultima parte è un brevissimo saggio sul futuro di JavaScript; le altre parti trattano lo sviluppo di codice JS professionale, la creazione di codice non invasivo nelle pagine web e l'utilizzo di AJAX per scrivere applicazioni più potenti e con una migliore user experience.

Più in dettaglio, il primo capitolo introduce a tutti gli argomenti che saranno successivamente trattati nel testo, mostrando al lettore la già citata suddivisione in 4 macroblocchi.

Il capitolo 2 analizza lo sviluppo orientato agli oggetti, mostrando come questi in JavaScript si distinguano rispetto agli altri linguaggi di programmazione e come utilizzarli per scrivere del codice più solido e robusto; il capitolo tratta anche le altre caratteristiche essenziali — comunque di natura avanzata — del linguaggio, quali i reference, l'overloading delle funzioni, il controllo sui tipi, lo scope, un'introduzione alle closure e i context. I temi sono abbastanza complessi, e certamente non risultano essere immediati; il testo li affronta comunque nel modo corretto, scegliendo o di fornire una spiegazione più o meno esaustiva, o semplicemente di introdurre in breve il lettore alla tematica, nella consapevolezza del fatto che dovrà approfondire altrove l'argomento e che necessiterà di tempo e pratica per raggiungere la padronanza della tecnica in oggetto.

Il capitolo 3 si concentra sulle metodologie principali per scrivere del codice che sia più riusabile, ben organizzato e di più alta qualità. Nella prima parte queste tecniche vengono applicate alla programmazione ad oggetti, mostrando vari metodi e librerie per ricreare dei meccanismi di ereditarietà ben strutturati e standardizzati. Nella seconda parte sono mostrate alcune tecniche presenti in altri linguaggi, ma applicate al JS come il namespacing, le convenzioni più importanti nella scrittura del codice, la compressione del sorgente e la sua distribuzione.

Nel quarto capitolo viene fatta una panoramica dei vari tool per il debug e i test con JS. Tutti questi strumenti sono analizzati per i diversi browser, e vengono mostrate 3 suite per scrivere casi di test: JsUnit, J3Unit e Test.Simple.

Con il quinto capitolo inizia la parte sulla scrittura di codice JavaScript non invasiva, ossia che presenti una netta separazione tra il codice di presentazione dei contenuti e il codice per l'interazione con l'utente, ma sopratutto in grado di definire dei comportamenti che risultino essere scalabili, in maniera trasparente e naturale, ai browser più vecchi che non dovessero supportare determinate feature. Si comincia con un'interessante introduzione, sia teorica che pratica, sul Document Object Model (DOM), menzionando anche le possibili alternative come Xpath. Interessante lo spunto fornito al lettore sul problema della sincronizzazione tra il JavaScript e il documento HTML quando si utilizza il DOM.

Il capitolo 6 prosegue concentrandosi sull'analisi degli eventi; il loro funzionamento in JavaScript è di natura rigorosamente asincrona, e l'autore ne approfitta per spiegare al lettore le differenze rispetto alla programazzione thread-based. La trattazione prosegue con le diverse tipologie di eventi e il binding ad elementi DOM, per poi riprendere il tema della non invasività del codice scritto.

Il capitolo 7 esamina invece l'interazione tra il JS e i fogli di stile, al fine di dotare la pagina di comportamenti dinamici che aumentino l'interazione con l'utente; viene mostrato come catturare alcuni particolari valori quali il posizionamento di un elemento nella pagina, la sua altezza e la visibilità associata, utilizzando queste informazioni per creare delle animazioni. Viene anche mostrato come reperire la posizione del mouse o informazioni sullo schermo al fine di creare l'effetto del drag-and-drop. Il capitolo si chiude con l'introduzione ad alcune librerie che implementano già i principali effetti grafici, evitando di dover reinventare la ruota: moo.fx, jQuery e script.aculo.us.

Con le tecniche affrontate nei capitoli precedenti, l'autore passa a illustrare una serie di esempi di applicazioni scritte in JavaScript. Nel capitolo 8 ci si concentra sui form; vengono mostrati metodi per ottenere la loro validazione, come ad esempio i controlli in caso di presenza di campi obbligatori, oppure l'uso delle espressioni regolari per controllare che l'utente inserisca numeri di telefono o formati di e-mail validi, per poi mostrare come migliorare l'usabilità e l'interazione da parte dell'utente con i form. Il capitolo 9 è invece una guida avente l'obiettivo di realizzare una galleria d'immagini. Prima sono mostrate due soluzioni già disponibili (LightBox e ThickBox), dopo di che si parte con la creazione della nostra galleria. È un vero e proprio tutorial: tutte le diverse feature sono costruite in maniera incrementale, dalla struttura alla navigazione e all'effetto di slideshow, ed è riportato tutto il codice utilizzato.

I capitoli che vanno dal 10 al 13 analizzano lo sviluppo con AJAX. Il primo è un'introduzione ben scritta sull'argomento, mostrando in maniera dettagliata tutti i principali aspetti teorici, nonché l'interazione con JS e le necessarie manipolazioni sui dati. I capitoli seguenti rappresentano invece dei casi di studio e delle guide allo sviluppo di alcune applicazioni AJAX. In ordine, viene mostrato come migliorare i blog con informazioni che vengono caricate dinamicamente (sia andando a bordo pagina per ottenere ulteriori notizie cronologicamente meno recenti, sia ottenendo update automatici delle notizie man mano che sono aggiunte alla pagina), come implementare la funzionalità dell'autocompletamento dei campi di ricerca nei form, in pieno stile Google, e come creare un'applicazione Wiki con un motore interamente sviluppato in JavaScript.

L'ultimo capitolo illustra brevemente al lettore la direzione verso cui il linguaggio JavaScript sta andando, mostrando le innovazioni apportate al nucleo di JS con le versioni 1.6 e 1.7, le potenzialità dell'utilizzo combinato di JavaScript con HTML5 prendendo Canvas come esempio pratico e introducendo Comet (e il relativo progetto CometD), nato con lo scopo di fornire le funzionalità di streaming assenti in AJAX.

Il libro presenta inoltre tre appendici: la prima è una reference sul DOM, completo di nomenclatura, attributi e metodi per intervenire sul documento HTML; la seconda appendice è un altrettanto completo e ben documentato documento sul tema degli eventi, suddivisi per categoria e corredando l'elenco con degli esempi; l'appendice C è invece un brevissimo richiamo alle diverse versioni dei principali browser, aggiornate ovviamente al periodo di stesura del libro. Un indice analitico dei termini principali chiude il volume.

Concludendo, questo testo può rappresentare il tramite per passare da una conoscenza di base del linguaggio a delle conoscenze di livello medio-avanzato, strutturando il codice con un approccio più ingegneristico e utilizzando tutte le feature presenti e prima sconosciute di questo potente e versatile linguaggio.
proL'esposizione e gli argomenti trattati presentano un'eccellente qualità. Il testo è accompagnato da numerosissimi esempi su ogni argomento e da codice già pronto per essere utilizzato.
controNessuno.
Precedente: Nomi importanti al phpDay e al jsDay
Successiva: Global Software and IT: A Guide to Distributed Development, Projects, and Outsourcing
Intervento di Jacopo Cocchi a.k.a. diobrando del 26-03-2012 ore 17:49, Udine (UD)
Barone
Barone
(261 interventi)
Iscritto il 18-09-2004
Domanda: per quanto Resig sia un autentico guri in materia, questo non è un testo che rischia di essere datato?
Dal 2006 le specifiche per JS, HTML5/CSS sono cambiate un bel po' (non necessariamente in bene...)
Intervento di Dario Cazzato a.k.a. irvine_85 del 05-04-2012 ore 17:15, Brindisi (BR)
Plebeo
Plebeo
(2 interventi)
Iscritto il 04-11-2011
A parer mio, dipende: se parliamo di alcuni plug-in introdotti, uno su tutti ThickBox (di cui riporto la dicitura in home page che vale 1000 parole da parte mia: "While Thickbox had its day, it is not maintained any longer, so we recommend you use some alternatives."), sicuramente sì... il libro è datato, e quindi sicuramente risulterebbe più utile spostarsi verso l'utilizzo di altri framework e plug-in più recenti, prendendo con le pinze ciò che l'autore ha reputato "all'avanguardia" nel 2006. Ma se si considerano le tecniche introdotte, l'uso del DOM, l'introduzione tecnica agli eventi o ad Ajax, JS orientato agli oggetti, la logica dietro la manipolazione dello stile... allora ritengo che questo testo risulti sicuramente utile anche oggi.
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.307 secondi.