Backbone.js – MV* JavaScript framework
Introduzione al Framework JavaScript Backbone.js
Quando si sviluppano applicazioni web, avvalendosi soltanto di jQuery, prima o poi ci si accorge che manca qualcosa, in modo particolare un sistema per organizzare e strutturare il proprio codice. Seguendo il classico approccio è molto facile creare delle applicazioni JavaScript che alla fine risultano essere un groviglio di selettori jQuery e callbacks attraverso cui si cerca di ottenere la consistenza tra l’interfaccia grafica – HTML, la logica presente nel proprio codice JavaScript e le chiamate ad una API per l’acquisizione dei dati. Oggi giorno ci sono molti framework Javascript che supportano gli sviluppatori nell’organizzazione e realizzazione del proprio codice in modo che sia strutturato e soprattutto facilmente testabile. Nella maggior parte di questi framework viene seguita una delle varianti del pattern MVC (Model-View-Controller) in cui individuiamo i seguenti concetti:
- Il Model rappresenta la conoscenza del dominio dell’applicazione (domain-specific knowledge) e i dati presenti nell’applicazione. Per avere idea di cosa sia un model si pensi a entità come un utente, una foto o una nota. In questa architettura la cosa interessante e molto sfruttata è la capacità dei model di poter notificare a coloro che li osservano i cambiamenti del proprio stato (Observer pattern).
- La View tipicamente costituisce l’interfaccia grafica di un’ applicazione. Le views possono osservare i model e reagire a determinati cambiamenti nel loro stato, ma non possono comunicarvi in modo diretto.
- Il Controller gestisce gli input (clicks o azioni dell’utente) e aggiorna i models interessati.
In sostanza in un’applicazione MVC, gli input degli utenti sono gestiti da un controller che provvederà ad aggiornare i models producendo un cambiamento di stato che solitamente è osservato dalle view, che in risposta producono un aggiornamento nell’interfaccia grafica.
I framework JavaScript non seguono rigorosamente quanto specificato dal pattern MVC, in modo particolare le responsabilità del controller vengono associate al model, alla view o assegnate ad un altro componente, perciò in tali casi è più giusto parlare di pattern MV*. Tra questi framework vi è Backbone.js (http://backbonejs.org/) , che si presenta come una libreria JavaScript molto leggera in grado di dare alle proprie applicazioni una buona struttura rendendo maneggevole le operazioni di tensting e manutenzione della stessa. Gli sviluppatori solitamente usano le librerie come Backbone.js per costruire applicazioni definite come SPAs (single-page-applications) le quali sono applicazioni che vengono caricate nel browser e poi reagiscono ai cambiamenti nei dati senza aver bisogno del refresh della pagina, quindi senza inviare una completa richiesta al server. Backbone.js è stato usato in molte applicazioni web molto complesse e di indubbio successo quali: Disqus (http://disqus.com/), Walmart (http://www.walmart.com/) , SoundCloud (https://soundcloud.com/), LinkedIn ( http://www.linkedin.com). Backbone.js è una libreria che si concentra nel fornire metodi per l’interrogazione e manipolazione dei dati piuttosto che reinventare l’Object model del JavaScript, ma allo stesso tempo è davvero molto potente perchè altamente scalabile e integrabile con altri framework; certamente rappresenta la giusta soluzione quando si lavora ad applicazioni abbastanza complesse, che debbano garantire alte prestazioni e un certo grado di interazione con l’utente.
Lascia un Commento
Vuoi partecipare alla discussione?Fornisci il tuo contributo!