SlideShare a Scribd company logo
1 of 26
Download to read offline
Backbone.js
 Francisco Javier Velasco Arjona
            @javivelasco
Qué es Backbone.js?


Backbone.js gives structure to web applications by providing
models with key-value binding and custom events, collections
with a rich API of enumerable functions, views with
declarative event handling, and connects it all to your existing
API over a RESTful JSON interface.
                                             http://backbonejs.org




                                                                     Backbone.js
Por qué es necesario?


Organiza la estructura de tu app.
Simplifica la persistencia en el server-side.
Desacopla el DOM de los datos.
Sincroniza modelos, colecciones con el DOM.




                         “Get	
  your	
  truth	
  out	
  of	
  the	
  DOM”	
  
                                                          Jeremy	
  Ashkenas	
  



                                                                                   Backbone.js
MVC MV*


Modelos que representan el dominio de la aplicación.
Vistas que se suelen asociar a UI.
Controladores que manejan la interacción.




Backbone.js delega responsabilidades del controlador en las
vistas y convierte el controlador en el router



                                                              Backbone.js
Models

Se genera un objeto modelo por extensión:




                                            Backbone.js
Models

Perfecta sincronía con servicios web RESTful:




                                                Backbone.js
Models

Custom & built-in events:




                            Backbone.js
Models

Muchos métodos útiles
   defaults establece valores por defecto
   clear elimina los atributos
   toJSON formatea los atributos
   validate valida al modificar

                                    http://backbonejs.org/#Model




                                                                   Backbone.js
Collections

Las colecciones manejan un conjunto de instancias de modelos




                                                               Backbone.js
Collections

Para iterar implementa funciones de Underscore.js




 Collection Events === Model Events
                                                    Backbone.js
Views

Se crean de forma similar a los modelos:




                                           Backbone.js
Views

Se sobreescribe render para renderizar la vista:




                                                   Backbone.js
Views

Se pueden crear eventos sobre la vista:




Multiples motores de template:
    Underscore, Mustache.js, Eco..
                                          Backbone.js
Views

Sencilla implementación del observer pattern




                                               Backbone.js
Views

Y con una colección




                      Backbone.js
Views

Se utilizan los eventos de las colecciones




                                             Backbone.js
Router & history

Varias vistas centradas en el mismo elemento del DOM
Al hacer el switch entre vistas, el navegador no cambia de URL
Para eso ofrece Backbone.js el router.

Until recently, hash fragments (#page) were used to provide
these permalinks, but with the arrival of the History API, it’s
now possible to use standard URLs (/page). Backbone.Router
provides methods for routing client-side pages, and
connecting them to actions and events
                                            http://backbonejs.org

                                                                    Backbone.js
Router & history

Se relacionan rutas con acciones




                                   Backbone.js
Router & history

Gracias al pushState se evita el hashbang!




 Se suele llamar a start incluyéndolo en un método del router
 A tener en cuenta utilizando pushState API:
     El server debe ser capaz de generar la página
     Los eventos se deben disparar a mano
                                                                Backbone.js
Aspectos importantes

Zombie views: instanciar modelos, asociarlos a vistas sobre el
mismo DOM element. La instancia de modelo cambia, la vista
se re-renderiza; es un gran problema.

Memory leak: declarar constantemente instancias. Siempre
que sea posible hay que instanciar los objetos una vez.

RESTful applications: el mapping entre ids debe estar en
armonía. Buena integración, pero hay que pensarlo siempre.

Otros...                                                         Backbone.js
Recursos

Official Documentation
http://backbonejs.org/


Recipes with Backbone.js by Nick Gauthier
http://recipeswithbackbone.com/


Developing Backbone Applications by Addy Osmani
http://addyosmani.github.com/backbone-fundamentals/


Backbone.js Patterns by Rico Sta Cruz
http://ricostacruz.com/backbone-patterns/
                                                      Backbone.js
Example app
  ¡A poner en práctica!
Arquitectura del sistema




                           Backbone.js
RESTful

Posibles peticiones al server


  Resource	
     GET	
                   POST	
                   PUT	
           DELETE	
  
  /films	
        Obtener	
               Crear	
  nuevo	
   -­‐-­‐	
              -­‐-­‐	
  
                 lista	
  de	
  films	
   film	
  
  /films/id	
     Obtener	
  un	
         -­‐-­‐	
                 Modificar	
      Eliminar	
  un	
  
                 film	
                                            un	
  film	
     film	
  




                                                                                                       Backbone.js
Project skeleton


Disponible en github:
https://github.com/javivelasco/betabeers-bbapp-skeleton (.git)




                                                                 Backbone.js
Gracias!
Francisco Javier Velasco Arjona
           @javivelasco

More Related Content

Similar to Taller backbone.js - Betabeers Córdoba (18/10/2012)

SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver FulgueraJavier Oliver Fulguera
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación JavaAntonio Contreras
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)Eudris Cabrera
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Spring on Flash Platform
Spring on Flash PlatformSpring on Flash Platform
Spring on Flash PlatformDaniel Ramos
 

Similar to Taller backbone.js - Betabeers Córdoba (18/10/2012) (20)

Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Presentacion web2py
Presentacion web2pyPresentacion web2py
Presentacion web2py
 
01 introducción
01 introducción01 introducción
01 introducción
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
MEAN ¿otro buzzword?
MEAN ¿otro buzzword?MEAN ¿otro buzzword?
MEAN ¿otro buzzword?
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Presentación Final Master JAVA UNED 2012
Presentación Final Master JAVA UNED 2012Presentación Final Master JAVA UNED 2012
Presentación Final Master JAVA UNED 2012
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
Tema 6
Tema 6Tema 6
Tema 6
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
10.desarrollowebconjava
10.desarrollowebconjava10.desarrollowebconjava
10.desarrollowebconjava
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Spring on Flash Platform
Spring on Flash PlatformSpring on Flash Platform
Spring on Flash Platform
 
Angular js in mobile
Angular js in mobileAngular js in mobile
Angular js in mobile
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Tecnologias web
Tecnologias webTecnologias web
Tecnologias web
 

More from betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

More from betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Recently uploaded

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Recently uploaded (15)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Taller backbone.js - Betabeers Córdoba (18/10/2012)

  • 1. Backbone.js Francisco Javier Velasco Arjona @javivelasco
  • 2. Qué es Backbone.js? Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface. http://backbonejs.org Backbone.js
  • 3. Por qué es necesario? Organiza la estructura de tu app. Simplifica la persistencia en el server-side. Desacopla el DOM de los datos. Sincroniza modelos, colecciones con el DOM. “Get  your  truth  out  of  the  DOM”   Jeremy  Ashkenas   Backbone.js
  • 4. MVC MV* Modelos que representan el dominio de la aplicación. Vistas que se suelen asociar a UI. Controladores que manejan la interacción. Backbone.js delega responsabilidades del controlador en las vistas y convierte el controlador en el router Backbone.js
  • 5. Models Se genera un objeto modelo por extensión: Backbone.js
  • 6. Models Perfecta sincronía con servicios web RESTful: Backbone.js
  • 7. Models Custom & built-in events: Backbone.js
  • 8. Models Muchos métodos útiles defaults establece valores por defecto clear elimina los atributos toJSON formatea los atributos validate valida al modificar http://backbonejs.org/#Model Backbone.js
  • 9. Collections Las colecciones manejan un conjunto de instancias de modelos Backbone.js
  • 10. Collections Para iterar implementa funciones de Underscore.js Collection Events === Model Events Backbone.js
  • 11. Views Se crean de forma similar a los modelos: Backbone.js
  • 12. Views Se sobreescribe render para renderizar la vista: Backbone.js
  • 13. Views Se pueden crear eventos sobre la vista: Multiples motores de template: Underscore, Mustache.js, Eco.. Backbone.js
  • 14. Views Sencilla implementación del observer pattern Backbone.js
  • 15. Views Y con una colección Backbone.js
  • 16. Views Se utilizan los eventos de las colecciones Backbone.js
  • 17. Router & history Varias vistas centradas en el mismo elemento del DOM Al hacer el switch entre vistas, el navegador no cambia de URL Para eso ofrece Backbone.js el router. Until recently, hash fragments (#page) were used to provide these permalinks, but with the arrival of the History API, it’s now possible to use standard URLs (/page). Backbone.Router provides methods for routing client-side pages, and connecting them to actions and events http://backbonejs.org Backbone.js
  • 18. Router & history Se relacionan rutas con acciones Backbone.js
  • 19. Router & history Gracias al pushState se evita el hashbang! Se suele llamar a start incluyéndolo en un método del router A tener en cuenta utilizando pushState API: El server debe ser capaz de generar la página Los eventos se deben disparar a mano Backbone.js
  • 20. Aspectos importantes Zombie views: instanciar modelos, asociarlos a vistas sobre el mismo DOM element. La instancia de modelo cambia, la vista se re-renderiza; es un gran problema. Memory leak: declarar constantemente instancias. Siempre que sea posible hay que instanciar los objetos una vez. RESTful applications: el mapping entre ids debe estar en armonía. Buena integración, pero hay que pensarlo siempre. Otros... Backbone.js
  • 21. Recursos Official Documentation http://backbonejs.org/ Recipes with Backbone.js by Nick Gauthier http://recipeswithbackbone.com/ Developing Backbone Applications by Addy Osmani http://addyosmani.github.com/backbone-fundamentals/ Backbone.js Patterns by Rico Sta Cruz http://ricostacruz.com/backbone-patterns/ Backbone.js
  • 22. Example app ¡A poner en práctica!
  • 24. RESTful Posibles peticiones al server Resource   GET   POST   PUT   DELETE   /films   Obtener   Crear  nuevo   -­‐-­‐   -­‐-­‐   lista  de  films   film   /films/id   Obtener  un   -­‐-­‐   Modificar   Eliminar  un   film   un  film   film   Backbone.js
  • 25. Project skeleton Disponible en github: https://github.com/javivelasco/betabeers-bbapp-skeleton (.git) Backbone.js
  • 26. Gracias! Francisco Javier Velasco Arjona @javivelasco