SlideShare una empresa de Scribd logo
Grails
Agenda
●Situación Actual
●Java + Groovy
●Grails
●Proceso de desarollo
Situación Actual
●Aplicacion monolítica
●Aplicacion no orientada a objetos
●Compleja de introducir cambios
●Duplicación de código
●Dificil de testear
●Performance (Php)
Java: Como plataforma
●El corazón de Java es su máquina virtual
●Código se compila. Write once, run anywhere
●Aplicaciones empresariales siguen estándares JEE
●Las aplicaciones se corren en applications servers.
●Java como lenguaje requiere cierto seniority. Tiene una
curva de aprendizaje mas lenta que otros lenguajes.
Groovy
●Lenguaje dinámico que corre sobre la VM de Java
●Integración e interoperabilidad con Java. Utilización de
todas la librerías desarrolladas en java
●Performance es similar entre Java y Groovy (desde Java
7 en adelante)
●Groovy 2.3 superior permite compilación estática
●Reducción en la cantidad de líneas de código (hasta
50%)
Groovy Funcionalidades
●Optional Typing vs Dynamic Typing vs Static Typing
●Metaprogramming y AST Transformations
●Programacion funcional (Closure)
●Builders Xml, Html, Swing, Jmx
●Groovy “decora” la Api actual de Java
●Native Syntax Constructs (Syntax Sugar)
●Navegación segura de propiedades
●Soporte de Domain Specific Language
●Unit Test: JUnit, Spock
Groovy: Quienes lo usan?
Java vs Groovy
Grails
●Es un framework web MVC basado en acciones
●Grails sigue los siguientes principios:
oCoC (Convention over configuration)
oDRY (Don’t repeat yourself)
●La esencia de Rails pero con la robustez de Java
Grails
●Utiliza los siguientes frameworks:
●Java: Jvm, JEE y especificaciones
●Spring: IoC, DI, Spring MVC, Spring WebFlow
●ORM: Hibernate o MongoDB
●Sitemesh: Html Layouts
●FullStack
Grails: Componentes
●Domain
●Controller
●Service
●View
●Taglibs
●Grails está construido sobre la base de un sistema de
plugins
●Un plugin puede proveer una serie de componentes:
Clases de dominio, Controllers, Services, etc
●Un plugin puede:
omodificar la configuración
oagregar métodos en tiempo de ejecución
omodificar clases en tiempo de compilación
Grails: Plugins
Grails: Plugins
Demo!!
●Spring Security (DB, LDAP, Kerberos, OAuth)
●WebFlows (Conversaciones HTTP)
●API Rest
●Programación Asincrónica (Actores, SPM, Fork/Join)
●Reactor (Event Driven Applications)
●Jasper reports
●Migrations: LiquidBase
Grails:
Forma de trabajo
Cuanto tiempo tarda su
organización en introducir un
cambio que solo involucra una
línea de código?
●Nuestra máxima prioridad es la de satisfacer al cliente a través de la entrega
temprana y continua del software solicitado
●El software debe estar siempre preparado para ser instalado en producción
●Las entregas deben realizarse por necesidades del negocios y no por
restricciones técnicas.
Proceso de desarrollo
Desarrollo Agil
●Automatizacion
●Patrones de diseño y buenas prácticas
●Colaboración de todos los roles involucrados
●Ingredientes
oConfiguration management
oIntegracion continua
oTest automaticos
Proceso de desarrollo
●Continuous Integration:
oEs la práctica de integrar el código lo antes posible.
oSe realizan test automaticos para detectar posibles fallas.
oCuando se sube un cambio al repositorio un servidor se encarga de
ejecutar la integración
●Continuous Delivery:
oEs la práctica donde se realiza la entrega continua.
oEl desarrollador decide si los cambios estan listos para pasar a la
siguiente etapa
oLa evaluación es constante de usuarios y QAs
Proceso de desarrollo
Demo!!
Gracias!
Emilio Alberdi
@emilioalberdi

Más contenido relacionado

PDF
Análisis de Grav Cms, ¿es mejor que Wordpress?
PDF
Java mission control para monitoreo, administración y profilig de aplicacion...
PDF
Software libre para videoconferencias
PDF
Node para Javeros: Conoce a tu enemigo
PDF
Análisis estático de código en Java
PPTX
Novedades .Net Core - NetBaires
PDF
Probando aplicaciones AngularJS
PPTX
Jenkins ci + selenium
Análisis de Grav Cms, ¿es mejor que Wordpress?
Java mission control para monitoreo, administración y profilig de aplicacion...
Software libre para videoconferencias
Node para Javeros: Conoce a tu enemigo
Análisis estático de código en Java
Novedades .Net Core - NetBaires
Probando aplicaciones AngularJS
Jenkins ci + selenium

La actualidad más candente (20)

PDF
Una gota de elixir 2017
PDF
JavaScript: Mejorando la programación
PDF
Integración contínua con Jenkins
PPT
red5
PPT
Presentacion de Red5
PPTX
ALM con Visual Studio y TFS 2013
PDF
Curso Angular 9 - CodeURJC - Marzo 2020
PDF
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
PPTX
Integración Continua usando Team Foundation Server
PDF
Android apps: un dia sin dex2jar y sin apktool
PPTX
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
PPTX
Dentro de un Backend
PDF
PPT
Tuenti - de la idea a la web
PPTX
El coste de no usar integración continua
PPTX
TDD (Test-Driven Development)
PPT
Mejores a nuestros proyectos de Software
PDF
Webinar: Introducción a Angular
PPTX
NetRaf 2017 - La plataforma .NET en el 2017
Una gota de elixir 2017
JavaScript: Mejorando la programación
Integración contínua con Jenkins
red5
Presentacion de Red5
ALM con Visual Studio y TFS 2013
Curso Angular 9 - CodeURJC - Marzo 2020
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Integración Continua usando Team Foundation Server
Android apps: un dia sin dex2jar y sin apktool
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
Dentro de un Backend
Tuenti - de la idea a la web
El coste de no usar integración continua
TDD (Test-Driven Development)
Mejores a nuestros proyectos de Software
Webinar: Introducción a Angular
NetRaf 2017 - La plataforma .NET en el 2017
Publicidad

Similar a Grails and Continuous delivery (20)

PDF
Grails en SG08
PPT
Charla grails
PDF
Grails en el Fonasol
ODP
Grails 2013 - PUCMM - Santiago - Sistemas
PDF
Intro a Grails @ ITESCA
PDF
Frameworks de Desarrollo Web Grails
PPTX
The Grails Framework.
PPTX
Groovy&Grails: desarrollo rápido de aplicaciones
KEY
SpringIO 2012 Madrid-Escalabilidad con Grails
PDF
Groovy y Grails, y la pastilla roja
PDF
ODP
Taller de Grails
ODP
Taller Grails
PDF
Groovy&Grails: desarrollo rápido de aplicaciones
PPTX
Taller de Grails
ODP
Jobsket.com, Grails en un proyecto real
ZIP
grails.org.mx Primera Reunion
ODP
Grails barcamp 2013
PDF
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
PDF
Seminario de Groovy y grails
Grails en SG08
Charla grails
Grails en el Fonasol
Grails 2013 - PUCMM - Santiago - Sistemas
Intro a Grails @ ITESCA
Frameworks de Desarrollo Web Grails
The Grails Framework.
Groovy&Grails: desarrollo rápido de aplicaciones
SpringIO 2012 Madrid-Escalabilidad con Grails
Groovy y Grails, y la pastilla roja
Taller de Grails
Taller Grails
Groovy&Grails: desarrollo rápido de aplicaciones
Taller de Grails
Jobsket.com, Grails en un proyecto real
grails.org.mx Primera Reunion
Grails barcamp 2013
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Seminario de Groovy y grails
Publicidad

Último (6)

PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
sistemas de informacion.................
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
Su punto de partida en la IA: Microsoft 365 Copilot Chat
sistemas de informacion.................
Derechos_de_Autor_y_Creative_Commons.pptx
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Conceptos basicos de Base de Datos y sus propiedades
AutoCAD Herramientas para el futuro, Juan Fandiño

Grails and Continuous delivery

  • 2. Agenda ●Situación Actual ●Java + Groovy ●Grails ●Proceso de desarollo
  • 3. Situación Actual ●Aplicacion monolítica ●Aplicacion no orientada a objetos ●Compleja de introducir cambios ●Duplicación de código ●Dificil de testear ●Performance (Php)
  • 4. Java: Como plataforma ●El corazón de Java es su máquina virtual ●Código se compila. Write once, run anywhere ●Aplicaciones empresariales siguen estándares JEE ●Las aplicaciones se corren en applications servers. ●Java como lenguaje requiere cierto seniority. Tiene una curva de aprendizaje mas lenta que otros lenguajes.
  • 5. Groovy ●Lenguaje dinámico que corre sobre la VM de Java ●Integración e interoperabilidad con Java. Utilización de todas la librerías desarrolladas en java ●Performance es similar entre Java y Groovy (desde Java 7 en adelante) ●Groovy 2.3 superior permite compilación estática ●Reducción en la cantidad de líneas de código (hasta 50%)
  • 6. Groovy Funcionalidades ●Optional Typing vs Dynamic Typing vs Static Typing ●Metaprogramming y AST Transformations ●Programacion funcional (Closure) ●Builders Xml, Html, Swing, Jmx ●Groovy “decora” la Api actual de Java ●Native Syntax Constructs (Syntax Sugar) ●Navegación segura de propiedades ●Soporte de Domain Specific Language ●Unit Test: JUnit, Spock
  • 9. Grails ●Es un framework web MVC basado en acciones ●Grails sigue los siguientes principios: oCoC (Convention over configuration) oDRY (Don’t repeat yourself) ●La esencia de Rails pero con la robustez de Java
  • 10. Grails ●Utiliza los siguientes frameworks: ●Java: Jvm, JEE y especificaciones ●Spring: IoC, DI, Spring MVC, Spring WebFlow ●ORM: Hibernate o MongoDB ●Sitemesh: Html Layouts ●FullStack
  • 12. ●Grails está construido sobre la base de un sistema de plugins ●Un plugin puede proveer una serie de componentes: Clases de dominio, Controllers, Services, etc ●Un plugin puede: omodificar la configuración oagregar métodos en tiempo de ejecución omodificar clases en tiempo de compilación Grails: Plugins
  • 15. ●Spring Security (DB, LDAP, Kerberos, OAuth) ●WebFlows (Conversaciones HTTP) ●API Rest ●Programación Asincrónica (Actores, SPM, Fork/Join) ●Reactor (Event Driven Applications) ●Jasper reports ●Migrations: LiquidBase Grails:
  • 16. Forma de trabajo Cuanto tiempo tarda su organización en introducir un cambio que solo involucra una línea de código?
  • 17. ●Nuestra máxima prioridad es la de satisfacer al cliente a través de la entrega temprana y continua del software solicitado ●El software debe estar siempre preparado para ser instalado en producción ●Las entregas deben realizarse por necesidades del negocios y no por restricciones técnicas. Proceso de desarrollo
  • 19. ●Automatizacion ●Patrones de diseño y buenas prácticas ●Colaboración de todos los roles involucrados ●Ingredientes oConfiguration management oIntegracion continua oTest automaticos Proceso de desarrollo
  • 20. ●Continuous Integration: oEs la práctica de integrar el código lo antes posible. oSe realizan test automaticos para detectar posibles fallas. oCuando se sube un cambio al repositorio un servidor se encarga de ejecutar la integración ●Continuous Delivery: oEs la práctica donde se realiza la entrega continua. oEl desarrollador decide si los cambios estan listos para pasar a la siguiente etapa oLa evaluación es constante de usuarios y QAs Proceso de desarrollo