2011-10-06 14 views
21

Sto cercando di sistemare la mia cassetta degli attrezzi JS. Per alcuni motivi di prodotto, il dojo sarà lì. Ora mi chiedo se aggiungere backbone.js ha senso. Do Dojo (che fa alcune altre cose - ne sono a conoscenza) e backbone.js si sovrappongono o completano? Quali sarebbero le differenze concettuali nelle parti che si sovrappongono? Ci sono esempi che usano entrambi insieme? (So che è una domanda piuttosto ampia e potrebbe mostrare il mio secondo livello di ignoranza)Confronto tra backbone.js e Dojo

risposta

30

Dojo copre un ambito molto più ampio di Backbone.js. Se sei già abile con Dojo, l'unica ragione per cui vuoi considerare Backbone.js nella tua casella degli strumenti è perché è leggero. La differenza API può piacerti o meno, è puramente una questione di scelta. Se si sta già utilizzando Dojo in un progetto, non c'è davvero alcun motivo di utilizzare Backbone.js nello stesso progetto perché Dojo ha tutto ciò che serve per costruire un'architettura MVC anche se a livello superficiale potrebbe non essere così ovvio. Gli archivi dati Dojo sono potenti e i widget Dijit sono progettati per essere utilizzati con i datastore Dojo. Usare i modelli Backbone per fornire il backend di dati per i widget Dijit sarebbe molto complicato. Questo è davvero superfluo perché nel livello dati Dojo e nel livello di presentazione sono nettamente disaccoppiati e funzionano in modo eccellente fuori dalla scatola. Tuttavia, se hai solo bisogno di una struttura MVC leggera per la tua app, Backbone.js potrebbe offrirti un'alternativa più leggera rispetto all'utilizzo di Dojo.Ma seconda della tua app e delle tue esigenze uno potrebbe essere più appropriato di altri ...

13

Ho una precedente esperienza di Backbonejs, ma sto per lavorare su un progetto che dipende da Dojo e sto appena iniziando a sceglierlo. Ciononostante, commenterò qui ciò che ho osservato finora, benché sia ​​poco.

Stiamo cercando uno stile Web moderno stile di architettura (si pensi a twitter, quora, gmail), questo tipo di architettura può essere facilmente fornito da qualcosa come Backbonejs. I concetti con cui ti potenzia, anche se fondamentali, sono al punto in cui hai bisogno.

Per essere onesti, non credo che Dojo fornisca davvero tutto ciò che Backbonejs fornisce, prendi questo esempio: Router e Views e i metodi utili che forniscono per dichiarare eventi facilmente e rapidamente, attivare i metodi su url cambia, ecc.

Dal lato di Dojo, riconoscerò che i negozi ci sono, e che puoi collegarli ai widget, ma non è lo stesso che avere gli insiemi di modelli & che Backbonejs fornisce. Nel tutorial MVC nel sito di Dojo identifica un negozio con un modello; che sarebbe una raccolta in Backbonejs, anche tu hai ancora un modello (questo sarebbe solo un articolo dal negozio, e puoi ascoltare eventi trigger & da & su di esso).

Sembrerebbe che le astrazioni di Backbonejs abbiano una grana più fine.

Quindi penso che sia possibile utilizzarli entrambi in modo complementare. Appena iniziato con questo approccio, vedremo come andrà in un paio di giorni.

(Rumor: Ho sentito da qualche parte che Dojo sta facendo alcuni sviluppi nell'area MVC per essere alla pari con quello Backbonejs offre ...)

+1

si prega di condividere l'esperienza, come si impara aggiornando questa risposta –

+4

Dojo 1.7 ero appena rilasciato ieri, e ora includono un [router!] (https://github.com/csnover/dojo-boilerplate/blob/amd1.7/src/js/dbp/Router.js) Sono stato giocando con la creazione di widget e sono ben architettati, hanno buone strutture per la comunicazione inter-componente (eventi, pub/sotto), anche una buona separazione delle preoccupazioni. – zenw0lf

+3

E con Dojo 1.7 puoi avere la delega degli eventi, lo stile delle viste di backbonejs: [dojo/on] (http://livedocs.dojotoolkit.org/dojo/on) – zenw0lf