Backbone.js – MV* JavaScript framework

Introduzione al Framework JavaScript Backbone.js

Backbone 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.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *