SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
Cómo Montar y Mantener 
tu Web App a Bajo Costo 
#VolKnoEnUTN VolKnoSocial 
www.volkno.com.ar
Agenda 
● ¿Qué es VolKno? 
● Lean Startup 
● SPA con AngularJS 
● API REST con JAX-RS 
● Back-End: Spring 
● OpenShift 
www.volkno.com.ar
www.volkno.com.ar
VolKno: Voluminous Knowledge 
● Acomodá tu contenido favorito 
● Descubrí la información que te gusta 
www.volkno.com.ar
● Traé tus links favoritos 
● Organizalos en estantes públicos 
● Leelos, Compartilos, Comentalos 
www.volkno.com.ar 
Organizá
● Descubrí la información que te gusta 
● Recibí notificaciones con sugerencias 
● Explorá los temas destacados 
www.volkno.com.ar 
Descubrí
Accedé desde cualquier lado 
www.volkno.com.ar
www.volkno.com.ar
Start up es una organización de personas 
diseñada para obtener un nuevo producto o 
servicio bajo condiciones de extrema 
incertidumbre 
www.volkno.com.ar 
Startup
Startup = Experimento 
Parar de hacer perder el tiempo 
a la gente 
Producto Mínimo Viable 
(MVP) 
www.volkno.com.ar 
Lean
www.volkno.com.ar 
¿Qué aprendimos?
www.volkno.com.ar 
Validate Learning
www.volkno.com.ar 
Medir! Medir! Medir! Medir!
¿Cuántas veces puedo pivotar 
antes de quedarme sin plata? 
www.volkno.com.ar 
Pivotar 
MVP Ajustar Pivotar o 
Seguir
● Identificar usuarios 
● Ver como los distintos usuarios usan el sitio 
○ Grabar su comportamiento 
○ Encuestas anónimas. 
○ Pedir Feedback 
● Juntarse con la comunidad emprendedora 
○ Contar tu idea a todo el mundo 
www.volkno.com.ar 
Salir del edificio
The goal of a start up is to figure out the right 
thing to build -- the thing that customers want 
and will pay for -- as quickly as possible. 
Eric Ries 
www.volkno.com.ar
www.volkno.com.ar
Aplicaciones Web Modernas 
● Mucha atención a UX 
● Flat Design 
● Diseños Responsivos y Minimalistas 
● SPA: Single Page Application 
● Fuerte Predominio de JavaScript 
● Frameworks CSS 
www.volkno.com.ar
● Primera Generación: HTML + CSS 
○ Aplicaciones Server-Centric 
○ Poco o casi nada JavaScript 
● Segunda Generación: Ajax con jQuery 
○ Web Apps más Ricas 
○ Fuerte uso de Ajax y abuso de jQuery 
● Tercera Generación: Frameworks JavaScript 
○ MVC del lado del cliente 
www.volkno.com.ar 
Evolución en App Webs
www.volkno.com.ar 
Arquitectura VolKno
Explosión de Frameworks JS 
http://todomvc.com/ 
www.volkno.com.ar
● Por su diseño modular y escalable 
● Por su alta adopción 
● Por su comunidad 
www.volkno.com.ar 
¿Por qué AngularJS?
¿Qué tendrá ese framework? 
● MVC de la década del 10 
● App guiada por el HTML 
● Two-Ways POJO Data Binding 
● Escribir poco código 
● Directivas para encapsular comportamiento 
● Casi nada de necesidad de manipular DOM 
● Servicios, Contextos, Manejo de Eventos 
● Listo para Unit Testing 
www.volkno.com.ar
www.volkno.com.ar 
Building Blocks
● AngularJS in 60 Minutes 
○ Dan Wahlin 
● angular.org 
● Foros, GitHub, StackOverflow 
● Templates y Generadores 
○ angular-seed 
○ angular-fullstack 
○ MEAN.js 
www.volkno.com.ar 
¿Cómo empezar?
www.volkno.com.ar 
API REST 
JAX-RS
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
¿Por qué las APIs se están 
comiendo al mundo? 
www.volkno.com.ar
El Club de los Billonarios 
www.volkno.com.ar
El Club de los Billonarios 
¡Según Twitter, 
el 60% de los 
tweets viene de 
Aplicaciones de 
Terceros! 
www.volkno.com.ar
www.volkno.com.ar
● Bien definidas 
● Bien documentadas 
● Proveer Herramientas 
● Deben funcionar muy bien 
● ¡Listas para Usar! 
www.volkno.com.ar 
Las APIs son Contratos
● Web Services que usan HTTP como 
protocolo de transporte 
● Operaciones más usadas 
○ GET, POST, PUT, DELETE => CRUD 
● URI => Sintaxis para Identificar Recursos 
www.volkno.com.ar 
REST
Ejemplo de CRUD de Webmarks 
● GET http://www.volkno.com.ar/api/webmarks 
○ Para consultar un listado de Webmarks 
● GET /api/webmarks/1735 
○ Para consultar el webmark 1735 
● POST /api/webmarks 
○ Para guardar un nuevo webmark 
● PUT /api/webmarks/1735 
○ Para modificar el webmark 1735 
www.volkno.com.ar
● Es un estándar de Java EE para construir 
RESTful Web Services (API) usando 
anotaciones 
● Mediante anotaciones expone clases Java 
en servicios REST 
● Nosotros usamos Apache CXF 
www.volkno.com.ar 
JAX-RS
● @Path 
● @GET, @POST, @PUT, @DELETE 
● @Produces, @Consumes 
www.volkno.com.ar 
Algunas Anotaciones
● @Path 
● @GET, @POST, @PUT, @DELETE 
● @Produces, @Consumes 
www.volkno.com.ar 
Algunas Anotaciones
● @Path 
● @GET, @POST, @PUT, @DELETE 
● @Produces, @Consumes 
www.volkno.com.ar 
Algunas Anotaciones
● La documentación de Apache CXF 
● Libro de Bill Burke (O’Reilly) 
www.volkno.com.ar 
¿Cómo empezar?
Spring, MyBatis, PostgreSQL 
www.volkno.com.ar 
Back-End
● Contenedor de Inversión de Control 
● Provee Inyección de Dependencia => Ideal 
para Servicios 
● Tiene muchos módulos que sirven para 
integrar distintos servicios Java EE y libs 
● Spring Data, Spring Security, Spring MVC, 
Spring Web Flow, etc 
www.volkno.com.ar 
Spring Framework
www.volkno.com.ar
www.volkno.com.ar
Inyección de Dependencia 
www.volkno.com.ar
Objeto de Acceso a Datos 
www.volkno.com.ar
Pruebas Unitarias con Mockito 
www.volkno.com.ar
Pruebas Unitarias con Mockito 
www.volkno.com.ar
Pruebas Integración DBUnit 
www.volkno.com.ar
Pruebas Integración DBUnit 
www.volkno.com.ar
Pruebas Integración DBUnit 
www.volkno.com.ar
www.volkno.com.ar
● PaaS de Red Hat 
● Cartridges out-of-the-box 
○ JBoss EAP, Wildfly, Tomcat, PHP, Zend, Python 
○ Ruby, Node.js, Vert.x, Perl, MongoDB, MySQL 
○ PostgreSQL, Jenkins, SwitchYard, Cron, Fuse 
● Cartridges DIY 
● Plan gratuito: 3 Gears 
www.volkno.com.ar 
OpenShift
www.volkno.com.ar 
Computación en la Nube
www.volkno.com.ar 
Computación en la Nube
www.volkno.com.ar
RHC: Command Line Tools 
● rhc app create <app-name> <cartridge> 
● rhc cartridge add <cartridge> -a <app-name> 
● rhc app restart -a <app-name> 
● rhc app ssh -a <app-name> 
● rhc tail -a <app-name> 
● rhc app show --gears -a <app-name> 
● rhc app show -a <app-name> 
www.volkno.com.ar
env: Variables de Entorno 
● OPENSHIFT_GEAR_MEMORY_MB 
● OPENSHIFT_DATA_DIR 
● OPENSHIFT_LOG_DIR 
● OPENSHIFT_POSTGRESQL_DB_HOST 
● OPENSHIFT_POSTGRESQL_DB_USERNAME 
● OPENSHIFT_PRIMARY_CARTRIDGE_DIR 
● OPENSHIFT_HAPROXY_PORT 
● OPENSHIFT_JBOSSEWS_JPDA_PORT 
● OPENSHIFT_HOMEDIR 
www.volkno.com.ar
● Getting Started with OpenShift 
www.volkno.com.ar 
¿Cómo empezar?
http://www.volkno.com.ar/widget.html?shelf=1378 
www.volkno.com.ar 
Bibliografía
www.volkno.com.ar

Más contenido relacionado

Similar a Charla de VolKno en UTN

Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Software Guru
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Ionic: el framework para crear aplicaciones-hibridas-multiplataforma
Ionic: el framework para crear aplicaciones-hibridas-multiplataformaIonic: el framework para crear aplicaciones-hibridas-multiplataforma
Ionic: el framework para crear aplicaciones-hibridas-multiplataformaQuasarMaximus
 
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
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaverLuis Viteri
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web modernoSebastián Rocco
 
Oracle 9iAS Portal Business Presentation 2002
Oracle 9iAS Portal Business Presentation 2002Oracle 9iAS Portal Business Presentation 2002
Oracle 9iAS Portal Business Presentation 2002Carlos J Carvajalino
 
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 Caracas
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 CaracasPlone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 Caracas
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 CaracasLeonardo J. Caballero G.
 
01 webinar caso_migracion_portalweb_v1.4.1-intix
01 webinar caso_migracion_portalweb_v1.4.1-intix01 webinar caso_migracion_portalweb_v1.4.1-intix
01 webinar caso_migracion_portalweb_v1.4.1-intixRoger CARHUATOCTO
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsAsier Marqués
 
Herramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebHerramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebErick David Juarez
 
Desarrollo responsivo con CakePHP y Foundation
Desarrollo responsivo con CakePHP y FoundationDesarrollo responsivo con CakePHP y Foundation
Desarrollo responsivo con CakePHP y FoundationLenin Alevski Huerta Arias
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 

Similar a Charla de VolKno en UTN (20)

Principios de cloud native
Principios de cloud nativePrincipios de cloud native
Principios de cloud native
 
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Momo mobile webwidgets
Momo mobile webwidgetsMomo mobile webwidgets
Momo mobile webwidgets
 
Mobile Web & Widgets
Mobile Web & WidgetsMobile Web & Widgets
Mobile Web & Widgets
 
Ionic: el framework para crear aplicaciones-hibridas-multiplataforma
Ionic: el framework para crear aplicaciones-hibridas-multiplataformaIonic: el framework para crear aplicaciones-hibridas-multiplataforma
Ionic: el framework para crear aplicaciones-hibridas-multiplataforma
 
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
 
Web Apps Azure
Web Apps AzureWeb Apps Azure
Web Apps Azure
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 
Frontal Avanzado y Assetic
Frontal Avanzado y AsseticFrontal Avanzado y Assetic
Frontal Avanzado y Assetic
 
Oracle 9iAS Portal Business Presentation 2002
Oracle 9iAS Portal Business Presentation 2002Oracle 9iAS Portal Business Presentation 2002
Oracle 9iAS Portal Business Presentation 2002
 
Plone CMS, como herramienta de apoyo a los procesos educativos
Plone CMS, como herramienta de apoyo a los procesos educativosPlone CMS, como herramienta de apoyo a los procesos educativos
Plone CMS, como herramienta de apoyo a los procesos educativos
 
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 Caracas
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 CaracasPlone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 Caracas
Plone CMS, como herramienta de apoyo a los procesos educativos, EFD 2014 Caracas
 
01 webinar caso_migracion_portalweb_v1.4.1-intix
01 webinar caso_migracion_portalweb_v1.4.1-intix01 webinar caso_migracion_portalweb_v1.4.1-intix
01 webinar caso_migracion_portalweb_v1.4.1-intix
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web Apps
 
Herramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebHerramientas y Tecnologías para la Web
Herramientas y Tecnologías para la Web
 
Desarrollo responsivo con CakePHP y Foundation
Desarrollo responsivo con CakePHP y FoundationDesarrollo responsivo con CakePHP y Foundation
Desarrollo responsivo con CakePHP y Foundation
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 

Último

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Último (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Charla de VolKno en UTN

  • 1. Cómo Montar y Mantener tu Web App a Bajo Costo #VolKnoEnUTN VolKnoSocial www.volkno.com.ar
  • 2. Agenda ● ¿Qué es VolKno? ● Lean Startup ● SPA con AngularJS ● API REST con JAX-RS ● Back-End: Spring ● OpenShift www.volkno.com.ar
  • 4. VolKno: Voluminous Knowledge ● Acomodá tu contenido favorito ● Descubrí la información que te gusta www.volkno.com.ar
  • 5. ● Traé tus links favoritos ● Organizalos en estantes públicos ● Leelos, Compartilos, Comentalos www.volkno.com.ar Organizá
  • 6. ● Descubrí la información que te gusta ● Recibí notificaciones con sugerencias ● Explorá los temas destacados www.volkno.com.ar Descubrí
  • 7. Accedé desde cualquier lado www.volkno.com.ar
  • 9. Start up es una organización de personas diseñada para obtener un nuevo producto o servicio bajo condiciones de extrema incertidumbre www.volkno.com.ar Startup
  • 10. Startup = Experimento Parar de hacer perder el tiempo a la gente Producto Mínimo Viable (MVP) www.volkno.com.ar Lean
  • 14. ¿Cuántas veces puedo pivotar antes de quedarme sin plata? www.volkno.com.ar Pivotar MVP Ajustar Pivotar o Seguir
  • 15. ● Identificar usuarios ● Ver como los distintos usuarios usan el sitio ○ Grabar su comportamiento ○ Encuestas anónimas. ○ Pedir Feedback ● Juntarse con la comunidad emprendedora ○ Contar tu idea a todo el mundo www.volkno.com.ar Salir del edificio
  • 16. The goal of a start up is to figure out the right thing to build -- the thing that customers want and will pay for -- as quickly as possible. Eric Ries www.volkno.com.ar
  • 18. Aplicaciones Web Modernas ● Mucha atención a UX ● Flat Design ● Diseños Responsivos y Minimalistas ● SPA: Single Page Application ● Fuerte Predominio de JavaScript ● Frameworks CSS www.volkno.com.ar
  • 19. ● Primera Generación: HTML + CSS ○ Aplicaciones Server-Centric ○ Poco o casi nada JavaScript ● Segunda Generación: Ajax con jQuery ○ Web Apps más Ricas ○ Fuerte uso de Ajax y abuso de jQuery ● Tercera Generación: Frameworks JavaScript ○ MVC del lado del cliente www.volkno.com.ar Evolución en App Webs
  • 21. Explosión de Frameworks JS http://todomvc.com/ www.volkno.com.ar
  • 22. ● Por su diseño modular y escalable ● Por su alta adopción ● Por su comunidad www.volkno.com.ar ¿Por qué AngularJS?
  • 23. ¿Qué tendrá ese framework? ● MVC de la década del 10 ● App guiada por el HTML ● Two-Ways POJO Data Binding ● Escribir poco código ● Directivas para encapsular comportamiento ● Casi nada de necesidad de manipular DOM ● Servicios, Contextos, Manejo de Eventos ● Listo para Unit Testing www.volkno.com.ar
  • 25. ● AngularJS in 60 Minutes ○ Dan Wahlin ● angular.org ● Foros, GitHub, StackOverflow ● Templates y Generadores ○ angular-seed ○ angular-fullstack ○ MEAN.js www.volkno.com.ar ¿Cómo empezar?
  • 27. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 28. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 29. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 30. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 31. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 32. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 33. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 34. ¿Por qué las APIs se están comiendo al mundo? www.volkno.com.ar
  • 35. El Club de los Billonarios www.volkno.com.ar
  • 36. El Club de los Billonarios ¡Según Twitter, el 60% de los tweets viene de Aplicaciones de Terceros! www.volkno.com.ar
  • 38. ● Bien definidas ● Bien documentadas ● Proveer Herramientas ● Deben funcionar muy bien ● ¡Listas para Usar! www.volkno.com.ar Las APIs son Contratos
  • 39. ● Web Services que usan HTTP como protocolo de transporte ● Operaciones más usadas ○ GET, POST, PUT, DELETE => CRUD ● URI => Sintaxis para Identificar Recursos www.volkno.com.ar REST
  • 40. Ejemplo de CRUD de Webmarks ● GET http://www.volkno.com.ar/api/webmarks ○ Para consultar un listado de Webmarks ● GET /api/webmarks/1735 ○ Para consultar el webmark 1735 ● POST /api/webmarks ○ Para guardar un nuevo webmark ● PUT /api/webmarks/1735 ○ Para modificar el webmark 1735 www.volkno.com.ar
  • 41. ● Es un estándar de Java EE para construir RESTful Web Services (API) usando anotaciones ● Mediante anotaciones expone clases Java en servicios REST ● Nosotros usamos Apache CXF www.volkno.com.ar JAX-RS
  • 42. ● @Path ● @GET, @POST, @PUT, @DELETE ● @Produces, @Consumes www.volkno.com.ar Algunas Anotaciones
  • 43. ● @Path ● @GET, @POST, @PUT, @DELETE ● @Produces, @Consumes www.volkno.com.ar Algunas Anotaciones
  • 44. ● @Path ● @GET, @POST, @PUT, @DELETE ● @Produces, @Consumes www.volkno.com.ar Algunas Anotaciones
  • 45. ● La documentación de Apache CXF ● Libro de Bill Burke (O’Reilly) www.volkno.com.ar ¿Cómo empezar?
  • 46. Spring, MyBatis, PostgreSQL www.volkno.com.ar Back-End
  • 47. ● Contenedor de Inversión de Control ● Provee Inyección de Dependencia => Ideal para Servicios ● Tiene muchos módulos que sirven para integrar distintos servicios Java EE y libs ● Spring Data, Spring Security, Spring MVC, Spring Web Flow, etc www.volkno.com.ar Spring Framework
  • 50. Inyección de Dependencia www.volkno.com.ar
  • 51. Objeto de Acceso a Datos www.volkno.com.ar
  • 52. Pruebas Unitarias con Mockito www.volkno.com.ar
  • 53. Pruebas Unitarias con Mockito www.volkno.com.ar
  • 54. Pruebas Integración DBUnit www.volkno.com.ar
  • 55. Pruebas Integración DBUnit www.volkno.com.ar
  • 56. Pruebas Integración DBUnit www.volkno.com.ar
  • 58. ● PaaS de Red Hat ● Cartridges out-of-the-box ○ JBoss EAP, Wildfly, Tomcat, PHP, Zend, Python ○ Ruby, Node.js, Vert.x, Perl, MongoDB, MySQL ○ PostgreSQL, Jenkins, SwitchYard, Cron, Fuse ● Cartridges DIY ● Plan gratuito: 3 Gears www.volkno.com.ar OpenShift
  • 62. RHC: Command Line Tools ● rhc app create <app-name> <cartridge> ● rhc cartridge add <cartridge> -a <app-name> ● rhc app restart -a <app-name> ● rhc app ssh -a <app-name> ● rhc tail -a <app-name> ● rhc app show --gears -a <app-name> ● rhc app show -a <app-name> www.volkno.com.ar
  • 63. env: Variables de Entorno ● OPENSHIFT_GEAR_MEMORY_MB ● OPENSHIFT_DATA_DIR ● OPENSHIFT_LOG_DIR ● OPENSHIFT_POSTGRESQL_DB_HOST ● OPENSHIFT_POSTGRESQL_DB_USERNAME ● OPENSHIFT_PRIMARY_CARTRIDGE_DIR ● OPENSHIFT_HAPROXY_PORT ● OPENSHIFT_JBOSSEWS_JPDA_PORT ● OPENSHIFT_HOMEDIR www.volkno.com.ar
  • 64. ● Getting Started with OpenShift www.volkno.com.ar ¿Cómo empezar?