Actualmente estoy trabajando en una gran aplicación web construida en backbone.js y he tenido muchos problemas con la organización, "zombies", etc., así que decidí hacer una refactor principal de código. Ya he escrito un montón de funciones de ayuda para tratar con los "zombis"; sin embargo, me gustaría comenzar desde el principio y crear una buena estructura/organización para el código. No he encontrado muchos ejemplos/tutoriales excelentes sobre la organización backbone.js a gran escala, así que de alguna manera comencé desde cero y me gustaría ver si puedo obtener algunas opiniones sobre dónde comencé.Gran organización de aplicaciones web backbone.js
Obviamente he configurado mi código dentro de un espacio de nombres global; pero también me gustaría mantener ese espacio de nombres bastante limpio. Mi app.js principal mantiene los archivos de clase separados del espacio de nombres global; puede registrar una clase (para que pueda ser instanciada) usando la función reg() y la función inst() crea una instancia de la clase. Así, además de los 3 métodos, el espacio de nombres MiApl solamente tiene Router, Modelo y 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);
dentro de los modelos, colecciones, Routers y Vistas, trabajo como de costumbre, pero luego deberá registrar esa clase al final de el archivo de modo que pudiera ser instanciado en un momento posterior (sin saturar el espacio de nombres) con:
MyApp.reg('Models', 'App', Model);
¿le parece esto como una forma innecesaria para organizar código? ¿Otros tienen mejores ejemplos de cómo organizar proyectos realmente grandes con muchos enrutadores, colecciones, modelos y vistas?
quizá http://codereview.stackexchange.com es más adecuado para este tipo de pregunta - pero nosotros mantener actualizado (enlace post);) – sled
Puede organizar el código en el módulo diferente. Puede consultar https://github.com/juggy/backbone-module Auto-promoción pequeña: p – Julien