2011-04-04 18 views
18

Aunque estoy siguiendo backbone.js durante algunos meses y trabajé en una plétora de tutoriales, todavía no tengo la suficiente confianza en la columna vertebral (o mis habilidades con respecto a esto) para usarla en un proyecto más grande.¿Cuáles son sus mejores prácticas para los proyectos de backbone.js?

Mi experiencia es que los tutoriales de backbone.js varían mucho en calidad, algunos están terriblemente desactualizados (especialmente la aplicación de tareas de muestra de los documentos de la red troncal).

Entonces me gustaría saber acerca de sus mejores prácticas/recetas de backbone.js? ¿Cómo se manejan las colecciones/vistas anidadas? Serialización JSON? ¿Consultas más complejas entre modelos?

+0

Puede ser específico con sus preguntas. ¿Cuál es el problema con el que se encontró? –

+0

p. Ej. Me encontré con algunas fallas técnicas con Backbone.View ... Representé mi vista sin this.el y como consecuencia todos mis controladores de eventos se perdieron después de la primera actualización de la plantilla. Pero hay una pérdida de otras áreas que me gustaría discutir, p. vistas anidadas, relaciones entre modelos, herencia de modelos ... – fbuchinger

+2

Creo que debe dividir esto en varias preguntas e incluir enlaces a las otras preguntas en cada pregunta. – jcollum

Respuesta

27

Aquí está una lista de preguntas que parecen haber preguntado:

Backbone.js mejores prácticas/recetas
Mi número uno práctica/receta es para sumergirse en el backbone.js code y leerlo, paso a través de él con el depurador js incluso. El código está bien documentado y es un excelente ejemplo de lo que debería ser el código JS moderno.

¿Cómo se manejan las colecciones/vistas anidadas?
Afaik no hay una "manera simple" de manejar colecciones anidadas y manejar eventos que suceden en una subcolección. Tendrás que implementarlo. Sin embargo, no he tenido que lidiar con una colección de colecciones, así que tal vez pueda evitarlo reestructurando su "modelo de datos". Un modelo que tiene una colección de modelos en sí mismo satisface la mayoría de los requisitos de un modelo anidado .

En lo que respecta a las vistas, básicamente tiene el control de cómo se renderizan. Una vista proporcionada por la red troncal no es más que un mecanismo para obtener cambios en el modelo correspondiente a su código de representación. Implementa el renderizado. Por lo tanto, si desea vistas anidadas, puede usar el motor de plantillas que admite parciales (si entiendo correctamente lo que quiere decir con vistas anidadas).

serialización JSON
¿Cuál es su pregunta? El documento principal dice "es muy recomendable incluir json2.js"

¿Consultas más complejas entre modelos?
Una vez más, ¿cuál es su pregunta? Backbone ofrece a estructurar a hacer su propia cosa, usted tiene que poner en práctica las complejidades usted mismo

Las relaciones entre los modelos
Una vez más, se está implementando los modelos. Sus modelos pueden contener otros modelos. Lo que hagas con ellos y cómo interactúas depende de ti. En mi experiencia, no fue necesario replicar el modelo de datos back-end en javascript.Es muy posible que sus modelos de front-end sean más simples que los de back-end.

herencia Modelo
Mediante el uso de Backbone.js ya está utilizando modelo de herencia. Esto es lo que ocurre cuando se escribe var = MyModel Backbone.Model.extend ...

Lo siento por no entrar en más detalles, pero al igual que Thomas Davis dijo, las preguntas eran muy vagas. Obtendrá una respuesta más detallada en una pregunta más detallada que describa un problema específico que tiene.

+0

Parece que explica la experiencia personal. No cómo se moverá un newbbie. –

+0

Puedes probar mi libro Backbone.js Patterns and Best Practices (http://www.amazon.com/dp/1783283572) que trata todos estos puntos en detalle. – Swar

2

Creo que las preguntas son un poco vagas por responder en una simple publicación.

Estoy a punto de completar una aplicación web completa en Backbone.js y también me gustaría analizar estas mejores prácticas para poder revisar algunas opciones rápidamente antes del lanzamiento.

Estoy trabajando en backbonetutorials.com en este momento para intentar agrupar estas preguntas más difíciles al final.

Las soluciones para guardar colecciones probablemente serán la primera pregunta, pero sería increíble si hubiera algún compromiso con la comunidad.

+0

Acepto que las preguntas son demasiado ambiguas.Creo que una buena característica para su sitio sería una lista de repositorios Github que usan la red troncal. –

+0

Soy consciente de que stackoverflow no es el mejor lugar para discutir estrategias de desarrollo, pero actualmente no se me ocurre un foro mejor. – fbuchinger

+0

Es un gran lugar para preguntar las estrategias, pero sea específico sobre el problema que enfrenta. –

7

Dado que la respuesta a esta pregunta puede ser demasiado larga, debido al alcance general que tiene, dejaré estos enlaces aquí. Espero que ayuden a otras personas que encuentren esta pregunta, ya que me ayudaron a tener una mejor comprensión de este marco y tener una mejor aplicación, con un uso eficiente de la memoria, una mejor organización de los archivos y un código más legible y mantenible :

http://ricostacruz.com/backbone-patterns/

http://kilon.org/blog/2012/11/3-tips-for-writing-better-backbone-views/

http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/

http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/ (fuera de la solución fecha, pero muy importante leer y entender !!)

https://github.com/thomasdao/Backbone-View-Manager

Ojalá tuviera esto desde el principio.

¡Salud!

0

Hay una cantidad de cosas de las que puede encargarse mientras desarrolla aplicaciones basadas en Backbone.js. Por ejemplo:

  1. personalizada plugins y mixins
  2. vistas anidadas/puntos de vista Sub
  3. Vista parcial actualizar
  4. gestión Plantilla - Almacenamiento, Pre-compilación en el extremo frontal y el extremo posterior
  5. modelos Serialización
  6. Modelo de datos relacionales
  7. Usando el despachador de eventos
  8. Subrouti ng
  9. arquitectura de aplicaciones a gran escala, etc.

Hay muchos más conceptos que son esenciales para el desarrollo de una sola página Backbone.js aplicaciones basadas. Puede probar mi libro Backbone.js Patterns and Best Practices que analiza todos estos puntos en detalle.

Cuestiones relacionadas