[Javascript] Un nuovo modo di scrivere il front-end con Backbone.js + CoffeeScript

Ultimamente sto usando il framework Backbone.js per scrivere il front-end di una web app, con un linguaggio molto minimale, e non proprio immediato, che è CoffeeScript. Non condivido appieno le implementazioni “massicce” lato front-end in Javascript, forse perché sono un convinto “accessibilista”, e forse perché non ho ancora compreso appieno quanto sia accessibile lo stesso Javascript. Comunque, sono contrario ad avere troppa logica spostata sul client e la struttura delle stesse pagine mi piace averla ben organizzata e semplice.

Tuttavia, questo Backbone, che implementa una “logica MVC” lato front-end, ho visto che è parecchio utilizzato in parecchie web app importanti.

Vi allego un ottimo tutorial, oltre al link della documentazione ufficiale e un ebook (a pagamento):

Da quanto si legge su HTML.it, per la sua architettura, Backbone.js rientra nella categoria delle librerie MV*, in quanto implementa Model e View, ma non ha un componente Controller tradizionale, delegandone i compiti alle View e ad un componente di routing. Questo approccio è abbastanza diffuso in ambito JavaScript, dove la diversa e più complessa gestione dell’interazione utente e dello stato dell’applicazione non si adattano bene ai compiti di un controller.

 

I componenti base di Backbone.js sono:

  • Backbone.Model: modelli
  • Backbone.Collection: liste di modelli
  • Backbone.View: view
  • Backbone.Router: routing e gestione centralizzata dello stato dell’applicazione

CoffeeScript, invece, non è altro che una riscrittura sintattica di Javascript, che si rifà a Ruby e Python. E’ simbioticamente legato, ma non necessario, a Backbone.js, visto che l’ha creato lo stesso Jeremy Ashkenas  (insieme ad Underscore.js ed Handlebars.js, librerie Javascript di utility, che è buono e consigliato conoscere per usare Backbone).

Eccovi un rapido tour nella sintassi CoffeeScript: CoffeeScript – perchè amarlo?

L’accoppiata Backbone+CoffeeScript ha un bel pò di vantaggi che ho potuto apprezzare:

  • semplicità e pulizia nella scrittura del codice, grazie ad una sintassi molto minimale (si richiede una conoscenza di base della sintassi Python)
  • il paradigma MVC crea una struttura di progetto ben organizzata, dove ogni cosa è al suo posto
  • propagazione di eventi e dell’aggiornamento “automatico” dello stato dei modelli e delle viste collegate
  • modalità di testing con fixture molto semplice e veloce
  • librerie di utility Javascript che implementano logiche anche complesse
  • realizzazione di Single-Page Application e di web app per il mobile (Using backbone.js with jQuery Mobile)
  • Backbone+REST=GRAVY: integrazione “nativa” di Backbone con le API REST (Vedi l’articolo sulla filosofia REST su questo blog)
  • possibilità di utilizzare tutto ciò che è Javascript (anche librerie come jQuery)
Gli svantaggi, a mio parere, sono:
  • troppa logica Javascript lato front-end
  • troppi modelli e viste possono rendere difficile la lettura e complicare la “navigazione” del progetto
  • se non si definisce un “modus operandi” e una struttura di progetto con relative “regole” e “convenzioni” prima dell’inizio della fase di sviluppo, risulta difficile lavorare in gruppo e scrivere software “manutenibile”
  • tecnologia molto evoluta e complessa, con una curva di apprendimento bassa
  • scarsa compatibilità con browser “datati”

Scritto ciò, se siete smanettoni Javascript, Backbone+CoffeeScript dovete assolutamente conoscerli ed usarli.

Vi allego un file di testo con delle note mie estratte dalla documentazione ufficiale di Backbone.

Note su Backbone.js estratte dalla documentazione ufficiale
Titolo: Backbonejs Notes (0 click)
Etichetta:
Filename: backbones.txt
Dimensione: 25 kB

Creative Commons License
[Javascript] Un nuovo modo di scrivere il front-end con Backbone.js + CoffeeScript by Francesco Ficetola is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.francescoficetola.it.
Permissions beyond the scope of this license may be available at http://www.francescoficetola.it/2012/10/28/javascript-un-nuovo-modo-di-scrivere-il-front-end-con-backbone-js-coffeescript/.

2 pensieri su “[Javascript] Un nuovo modo di scrivere il front-end con Backbone.js + CoffeeScript

  1. Ciao Francesco, complimenti per gli appunti. Si capisce subito che hai smanettato parecchio. Condivido la lista dei pro/contro, infatti sono in dubbio se adottarlo proprio per alcuni contro. Tuttavia per realizzare applicazioni complesse, mi pare essere l’unica strada percorribile.

    E mi son deciso ad approfondirlo. A tal proposito, volevo chiederti se conosci un forum in cui poter parlare di backbone.js magari dove trovare un pò di esempi.

    • Ciao Giancarlo. Grazie! Io ho “studiato” direttamente dalla guida ufficiale e mi è bastata quella. Alla fine, come tutti i linguaggio di scripting, devi smanettarci. La cosa buona di BackBone.js è il paradigma MVC che ti permette di rispettare una certa struttura ed avere un progetto ben organizzato e codice leggibile.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


1 × sei =

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>