top mejor library front framework for end best ruby-on-rails rest backbone.js ember.js frontend

ruby on rails - mejor - Ember.js o Backbone.js para Backend relajante



mejor framework front end (3)

Creo que su pregunta pronto será bloqueada :) Hay algunas disputas entre los dos marcos.

Básicamente Backbone no hace muchas cosas, y es por eso que me encanta: tendrás que codificar mucho, pero codificarás en el lugar correcto. Ember hace muchas cosas, así que será mejor que observes lo que está haciendo.

La discusión del servidor es una de las pocas cosas que hace Backbone, y hace un gran trabajo con ella. Entonces comenzaría con Backbone y luego probaría con Ember si no está totalmente satisfecho.

También puedes escuchar este podcast donde Jeremy Ashkenas, creador de Backbone, y Yehuda Katz, miembro de Ember, tienen una agradable discusión

Ya sé que ember.js es un enfoque más pesado en comparación con backbone.js. Leí muchos artículos sobre ambos.

Me pregunto qué marco funciona más fácilmente como frontend para un backend de resto de rieles. Para backbone.js vi diferentes enfoques para llamar a un back-end de descanso. Para brasa, parece que tengo que incluir algunas bibliotecas más, como ''datos'' o ''recursos''. ¿Por qué hay dos bibliotecas para esto?

Entonces, ¿cuál es la mejor opción? No hay muchos ejemplos para conectar el frontend con el backend también. ¿Cuál es un buen ejemplo de trabajo para una llamada de respaldo a esto?

URI: ../restapi/topics GET credenciales de autenticación: formato admin / secrect: json


Para dar una respuesta breve y simplificada: para un backend RESTful, en este momento, debe usar Backbone.

Para dar una respuesta más compleja: realmente depende de lo que estás haciendo. Como han dicho otros, Ember está diseñado para diferentes cosas y atraerá a un grupo diferente de personas. Mi breve respuesta se basa en su inclusión del requisito RESTful.

Por el momento, Ember-Data (que parece ser el mecanismo de persistencia predeterminado en Ember) está lejos de estar listo para producción. Lo que esto significa es que tiene bastantes errores y, lo que es más importante, no admite URI anidados (/ posts / 2 / comments / 4556, por ejemplo). Si REST es su requisito, entonces tendrá que solucionar esto por el momento si elige Ember (es decir, tendrá que hackearlo, esperar, implementar algo como Ember-Data desde cero o no usarlo -UHS muy RESTful). Ember-Data no es estrictamente parte de Ember, por lo que esto es completamente posible.

Las principales diferencias entre los dos, aparte del tamaño, son básicamente:

Ember intenta hacer todo lo posible por ti, para que no tengas que escribir tanto código. Es muy jerárquico y, si tu aplicación también es muy jerárquica, probablemente sea una buena opción. Debido a que hace tanto por ti, puede ser difícil averiguar de dónde vienen los errores y razonar por qué está ocurriendo un comportamiento inesperado (hay mucha "magia"). Si tiene una aplicación que se ajusta naturalmente al tipo de aplicación que Ember espera que esté construyendo, esto probablemente no será un problema.

El Backbone intenta hacer lo mínimo posible para que pueda razonar sobre lo que está sucediendo y crear una arquitectura que se adapte a su aplicación (en lugar de crear una aplicación que se ajuste a la arquitectura del framework que está utilizando). Es mucho más fácil comenzar, pero a menos que tengas cuidado, puedes terminar con un desastre muy rápido. No hace cosas como propiedades computadas, eventos de desvinculación automática, etc. y los deja a su criterio, por lo que tendrá que implementar muchas cosas usted mismo (o al menos elegir bibliotecas que lo hagan por usted), aunque eso es más bien todo el punto.

Actualización : Parece que, hasta hace poco, Ember ahora es compatible con URI anidados, por lo que supongo que la cuestión se reduce a cuánta magia le gusta y si Ember es una buena opción, arquitectónicamente, para su aplicación.


Al contrario de la opinión popular, Ember.js no es un "enfoque más pesado" para Backbone.js. Son diferentes tipos de herramientas que se dirigen a productos finales totalmente diferentes. El punto dulce de Ember son las aplicaciones donde el usuario mantendrá la aplicación abierta durante largos períodos de tiempo, quizás todo el día, y las interacciones con las vistas de la aplicación o los datos subyacentes desencadenan cambios profundos en la jerarquía de vistas. Ember es más grande que Backbone, pero gracias a Expires , Cache-Control esto solo importa en la primera carga. Después de dos días de uso diario, esos 30k adicionales quedarán eclipsados ​​por las transferencias de datos, antes si su contenido incluye imágenes.

El backbone es ideal para aplicaciones con un pequeño número de estados donde la jerarquía de vistas permanece relativamente plana y donde el usuario tiende a acceder a la aplicación con poca frecuencia o por periodos de tiempo más cortos. El código de Backbone se mantiene corto y dulce porque supone que los datos que respaldan el DOM se descartarán y se recopilarán los dos elementos en la memoria: https://github.com/documentcloud/backbone/issues/231#issuecomment-4452400 El tamaño más pequeño de Backbone también lo hace más adecuado para interacciones breves.

Las aplicaciones que las personas escriben en ambos marcos reflejan estos usos: las aplicaciones Ember.js incluyen el panel web de Square , Zendesk (al menos la interfaz agente / ticketing) y el programador de Groupon : todas las aplicaciones en las que un usuario puede pasar todo el día trabajando.

Las aplicaciones principales se centran más en interacciones breves o informales, que a menudo son solo pequeñas secciones de una página estática más grande: airbnb , Khan Academy , el mapa y las listas de Foursquare .

Puedes usar Backbone para hacer los tipos de aplicaciones que Ember apunta (ej. Rdio ) a) incrementando la cantidad de código de aplicación del que eres responsable para evitar problemas como pérdidas de memoria o eventos zombies (personalmente no recomiendo este enfoque) o b) agregando bibliotecas de terceros como backbone.marionette o Coccyx : hay muchas de estas bibliotecas que intentan proporcionar una funcionalidad de superposición similar y es probable que termine ensamblando su propio marco personalizado que sea más grande y requiera más código de pegamento que si acabaras de usar Ember.

En definitiva, la pregunta de "qué usar" tiene dos respuestas.

Primero, "¿Qué debería usar, en general, en mi carrera profesional?": Ambos, al igual que terminarás aprendiendo cualquier herramienta específica para el trabajo que desees hacer en el futuro. Nunca preguntarías "Backbone o D3?"; "Backbone o Ember" es una pregunta igualmente tonta.

Segundo, "¿Qué debería usar, específicamente, en mi próximo proyecto?": Depende del proyecto. Ambos se comunicarán con un servidor de Rails con la misma facilidad. Si su próximo proyecto implica una combinación de páginas generadas por el servidor con las llamadas "islas de riqueza" proporcionadas por JavaScript, utilice Backbone. Si su próximo proyecto empuja toda la interacción al entorno del navegador, use Ember.