Upload
volkno
View
1.212
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Presentación del equipo VolKno en la Universidad Tecnológica Argentina el 30 de Septiembre de 2014
Citation preview
Cómo Montar y Mantener tu Web App a Bajo Costo
www.volkno.com.ar
VolKnoSocial#VolKnoEnUTN
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
● Acomodá tu contenido favorito● Descubrí la información que te gusta
www.volkno.com.ar
VolKno: Voluminous Knowledge
● 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í
www.volkno.com.ar
Accedé desde cualquier lado
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!
www.volkno.com.ar
¿Cuántas veces puedo pivotar antes de quedarme sin plata?
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
● 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
Aplicaciones Web Modernas
● 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
www.volkno.com.ar
Explosión de Frameworks JS
http://todomvc.com/
● Por su diseño modular y escalable● Por su alta adopción● Por su comunidad
www.volkno.com.ar
¿Por qué AngularJS?
● 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
¿Qué tendrá ese framework?
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
JAX-RS
API REST
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
¿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
● 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
● 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
Ejemplo de CRUD de Webmarks
● 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?
www.volkno.com.ar
Spring, MyBatis, PostgreSQL
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
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
● 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
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
● 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