17/07/2013

Backbone.js: otro enfoque para desarrollar aplicaciones en JavaScript

Backbone.js: otro enfoque para desarrollar aplicaciones en JavaScript

Backbone.js es un framework de JavaScript que permite crear aplicaciones basadas en el patrón de arquitectura Modelo-vista-controlador (MVC). Las aplicaciones que siguen este esquema están formadas por tres componentes básicos:

  • Modelo. Es la representación de los datos que maneja la aplicación. Generalmente, se sostiene por una base de datos. Gestiona el acceso, eliminación y modificación de la información.
  • Vista. Genera las salidas visibles por el usuario. Incluye una interfaz que le permite interactuar con la información del modelo. Puede acceder al modelo, pero no modificarlo directamente.
  • Controlador. Un intermediario entre las otras dos capas. Recibe peticiones de la vista (por ejemplo, una modificación de datos), las efectúa y devuelve a la vista el resultado de la operación. Así, se genera una nueva vista, actualizada.

La adaptación a este patrón es la principal diferencia entre Backbone.js y proyectos relacionados, como la biblioteca jQuery. Sin embargo, Backbone.js no debe tomarse como una alternativa a jQuery, sino que incluso puede actuar como su complemento. Muchas veces se utiliza Backbone.js para definir la estructura de la aplicación y jQuery para definir otros aspectos, como el diseño o la usabilidad. Backbone.js presenta una gran capacidad de integración con otras soluciones.

Al patrón MVC, Backbone.js agrega otros elementos:

  • Eventos. Módulos que se disparan cuando se produce una acción determinada (por ejemplo, un cambio en el modelo).
  • Colecciones. Conjuntos ordenados de modelos.
  • Routers. Permiten separar una misma página en distintas secciones y mostrar, en cada una de ellas, contenido diferente. Es decir, la ruta de la página no está atada a su contenido.
  • Sincronización. Una función nos permite mantener los datos del modelo sincronizados entre el cliente y el servidor, evitando posibles inconsistencias.

Backbone.js es ideal para crear aplicaciones web de lado cliente y de una sola página cuya complejidad exija el apoyo de una estructura definida para un proceso de desarrollo ordenado. Sin embargo, el uso de una página única para montar la aplicación hace que existan pocos cambios de página, acumulándose en memoria objetos que ya no se utilizan (garbage) y dándose un uso ineficiente de ese recurso.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce