Attualmente sto lavorando a una grande app web costruita su backbone.js e ho avuto un sacco di problemi con l'organizzazione, "zombi", ecc. Quindi ho deciso di fare un importante refactoring del codice. Ho già scritto un sacco di funzioni di supporto per affrontare gli "zombi"; tuttavia, mi piacerebbe ricominciare dall'inizio e creare una buona struttura/organizzazione per il codice. Non ho trovato molti tutorial/esempi sull'organizzazione backbone.js su larga scala, quindi ho iniziato da zero e vorrei vedere se riesco a ottenere qualche opinione su dove ho iniziato.Grande organizzazione di app web backbone.js
Ho ovviamente impostato il mio codice all'interno di un namespace globale; ma mi piacerebbe anche mantenere lo spazio dei nomi piuttosto pulito. La mia app.js principale mantiene i file di classe separati dallo spazio dei nomi globale; è possibile registrare una classe (in modo che possa essere istanziata) utilizzando la funzione reg() e la funzione inst() crea un'istanza di una classe dall'array delle classi. Così, oltre i 3 metodi, lo spazio dei nomi MyApp ha solo Router, modello e Vista:
var MyApp = (function() {
var classes = {
Routers: {},
Collections: {},
Models: {},
Views: {}
};
methods = {
init: function() {
MyApp.Router = MyApp.inst('Routers', 'App');
MyApp.Model = MyApp.inst('Models', 'App');
MyApp.View = MyApp.inst('Views', 'App');
Backbone.history.start();
},
reg: function (type, name, C) {
classes[type][name] = C;
},
inst: function (type, C, attrs) {
return new classes[type][C](attrs || {});
}
};
return methods;
}());
$(MyApp.init);
all'interno dei modelli, del Collezionismo, router e Visualizzazioni, io lavoro come al solito, ma poi bisogno di registrare che di classe alla fine del il file in modo che potesse essere un'istanza in un momento successivo (senza ingombrare lo spazio dei nomi) con:
MyApp.reg('Models', 'App', Model);
questo sembra un modo inutile per organizzare il codice? Gli altri hanno esempi migliori di come organizzare progetti davvero grandi con molti router, collezioni, modelli e viste?
forse http://codereview.stackexchange.com è più adatto per questo tipo di domanda - ma tenerci aggiornati (link post);) – sled
È possibile organizzare il codice in moduli diversi. Puoi consultare https://github.com/juggy/backbone-module Piccola auto-promozione: p – Julien