underscore tutorial software significado backbone backbone.js organization

backbone.js - tutorial - ¿Cómo organizas tus archivos de Backbone?



backbone software (1)

Iría con una versión modificada de la segunda ... básicamente, elimine las carpetas para m, v y c en cada una de las secciones de su sitio. realmente no hay necesidad de separarlos en subcarpetas cuando los nombres de los archivos y las clases ya reflejen lo que son.

js +- search | +- result.js | +- results.js | +- resultRow.js | +- ... +- cart | +- item.js | +- items.js | +- itemRow.js | +- ... +- routers | +- search | +- cart | ...

Mirando este diseño, sigo sabiendo que "item" es un modelo, "items" es una colección y "itemRow" es una vista, porque esa es la convención que ha configurado. agregar la capa adicional de nombres de carpetas solo agrega complejidad y no agrega valor, en mi opinión.

también - (probablemente lo sepas, pero en caso de que otros no lean esta publicación ...) asegúrate de usar algo como require.js para consolidar / minimizar todos tus js en un solo archivo antes de implementarlo en tus entornos de producción. Mantener el código organizado de esta manera es ideal para propósitos de desarrollo y depuración. pero cuando llega el momento de que un sistema de producción use el código, dividirlo en varios archivos causa retrasos significativos para el usuario final. require.js resuelve este problema al proporcionar una manera fácil de tener ambos: archivos organizados durante el trabajo de desarrollo y un único archivo minified para producción.

Estoy buscando implementar el backbone en un proyecto web grande con múltiples "aplicaciones" que lo usarán y estoy tratando de encontrar una buena manera de organizar mis archivos. Los dos que he encontrado hasta ahora son:

js +- models | +- search | | +- result.js | | +- ... | +- cart | | +- item.js | | +- ... | ... +- collections | +- search | | +- results.js | | +- ... | +- cart | | +- items.js | | +- ... | ... +- views | +- search | | +- resultRow.js | | +- ... | +- cart | | +- itemRow.js | | +- ... | ... +- routers | +- search | +- cart | ...

Y

js +- search | +- models | | +- result.js | | +- ... | ... | +- collections | | +- results.js | | +- ... | ... | +- views | | +- resultRow.js | | +- ... +- cart | +- models | | +- item.js | | +- ... | ... | +- collections | | +- items.js | | +- ... | ... | +- views | | +- itemRow.js | | +- ... +- routers | +- search | +- cart | ...

Me inclino por lo último, ya que tiene líneas más claras entre las secciones del sitio web y mantiene las aplicaciones juntas, pero nuestra estructura actual del marco de back-end es mucho más parecida a la anterior.