SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Groovy: el lenguaje dinámico
         para la JVM

 José Juan R.
    Zuñiga
(@neodevelop)


                     @grailsmx
Agenda
• Introducción abierta(Open Source y lenguajes de
  desarrollo)
• ¿Que es groovy?
• Hola Mundo en Groovy
• Azúcar Sintáctica
• +Groovy en una mirada
• Aplicaciones Desktop con Groovy
• Acceso a base de datos con Groovy
• Metaprogramación
• Testing
Introducción
Groovy
HolaMundo en Java
public class HolaMundo {

   private String nombre;

   public String getNombre() {

   
    return nombre;

   }

   public void setNombre(String nombre) {

   
    this.nombre = nombre;

   }

   public String saluda() {

   
    return "Hola " + this.nombre + " !!!";

   }

   public static void main(String[] args) {

   
    HolaMundo objeto = new HolaMundo();

   
    objeto.setNombre("@grailsmx");

   
    System.out.println(objeto.saluda());

   }
}
HolaMundo en Groovy
public class HolaMundo {

   private String nombre;

   public String getNombre() {

   
    return nombre;

   }

   public void setNombre(String nombre) {

   
    this.nombre = nombre;

   }

   public String saluda() {

   
    return "Hola " + this.nombre + " !!!";

   }

   public static void main(String[] args) {

   
    HolaMundo objeto = new HolaMundo();

   
    objeto.setNombre("@grailsmx");

   
    System.out.println(objeto.saluda());

   }
}
Mejor a la manera Groovy


class HolaMundo {

 String nombre

 def saluda() { "Hola ${this.nombre} !!!" }

}

def objeto = new HolaMundo(nombre:"@grailsmx")
println(objeto.saluda())
¿Cómo llegamos a esto…?
• Tener el JDK instalado
• Establecer la variable JAVA_HOME y agregarla al
  PATH en el subdirectorio /bin
• Descargamos la distribución de Groovy en http://
  groovy.codehaus.org/
• Creamos una variable de entorno GROOVY_HOME
  apuntando al directorio donde se descomprimió la
  distribución
• Adicionalmente, incluir en el PATH el directorio /
  bin de la variable de entorno GROOVY_HOME, es
  decir: %GROOVY_HOME%/bin

• Let’s rock the code!!!
+ Groovy en una mirada
•   Totalmente Orientado a objetos
•   Perfecta integración con Java
•   Closures
•   Convención de JavaBeans
•   Esencia vs. Ceremonia
•   Aritmética con BigDecimal por default para la operación
    de punto flotante
•   API’s amigables y prácticas
•   XML, JDBC, JMX, Swing
•   DSL(Domain Specific Language)
•   Builders
•   Sobrecarga de operadores
•   GDK
Azúcar sintáctica + GDK
• Listas
  – def numeros = [1,2,3,4,5]
• Mapas
  – def mapa = [DF:'Distrito
    Federal',MTY:'Monterrey']
• Rangos
  – def rangos = 199..299
• Asignación Múltiple
  – def (a,b) = [10,20]
• Return Opcional
  – def metodo(bool) { if(bool) 1 else 0 }
Groovy en profundidad
• Meta-programación
  – La habilidad de un lenguaje para modificarse a sí mismo
• Transformaciones AST
  –   @Singleton
  –   @Inmutable, @Lazy, @Delegate
  –   @Newify
  –   @Category & @Mixin
  –   @PackageScope
  –   @Bindable & @Vetoable
  –   @Grab
Aplicaciones Desktop
Let’s code again!!!
Base de Datos
Metaprogramación
Testing
¿Quieres ser Groovy?
Aun hay algo más…




              @grailsmx
Esperen…




           @grailsmx
Agradecimiento
• GULEV
• @springhispano
• @grailsmx
¿Preguntas?

…o comentarios…
springhispano.org
  grails.org.mx
  @neodevelop

                                  @grailsmx

Más contenido relacionado

La actualidad más candente

Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Iván López Martín
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y GoJM Robles
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreHillmerC
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Ernesto Crespo
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 

La actualidad más candente (20)

Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
Seminario Grails
Seminario GrailsSeminario Grails
Seminario Grails
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Grails
GrailsGrails
Grails
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
Grails en el Fonasol
Grails en el FonasolGrails en el Fonasol
Grails en el Fonasol
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)
 
Migrando CI a Docker
Migrando CI a DockerMigrando CI a Docker
Migrando CI a Docker
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Spring boot + spock
Spring boot + spockSpring boot + spock
Spring boot + spock
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 

Destacado

Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Esteban Saavedra
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkRichard Tuin
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceJose Juan R. Zuñiga
 
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TI
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TIGestión de requisitos y su trazabilidad en la Gestión de Servicios TI
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TIOVERTI
 
M1 tema 1 deteccion de incendios quimica del fuego
M1 tema 1   deteccion de incendios quimica del fuegoM1 tema 1   deteccion de incendios quimica del fuego
M1 tema 1 deteccion de incendios quimica del fuegojmsarmientom
 
BDD + PHP = behat!
BDD + PHP = behat!BDD + PHP = behat!
BDD + PHP = behat!Vitor Mattos
 
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?Belatrix Software
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Cyrille Martraire
 
Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Esteban Saavedra
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túJavier Acero
 

Destacado (12)

Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3
 
Documentación
DocumentaciónDocumentación
Documentación
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and Mink
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open Source
 
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TI
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TIGestión de requisitos y su trazabilidad en la Gestión de Servicios TI
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TI
 
M1 tema 1 deteccion de incendios quimica del fuego
M1 tema 1   deteccion de incendios quimica del fuegoM1 tema 1   deteccion de incendios quimica del fuego
M1 tema 1 deteccion de incendios quimica del fuego
 
BDD + PHP = behat!
BDD + PHP = behat!BDD + PHP = behat!
BDD + PHP = behat!
 
Especificación medianteejemplos
Especificación medianteejemplosEspecificación medianteejemplos
Especificación medianteejemplos
 
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?
SEMINARIO WEB - El ABC del Test Automation: ¿Qué, por qué, cuando y cómo?
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
 
Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que tú
 

Similar a Introducción a Groovy

Introduccion a grails en Campusparty
Introduccion a grails en CampuspartyIntroduccion a grails en Campusparty
Introduccion a grails en CampuspartyJose Juan R. Zuñiga
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Seminario de Groovy y grails
Seminario de Groovy y grailsSeminario de Groovy y grails
Seminario de Groovy y grailsParadigma Digital
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityFe
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011jose diaz
 
Realizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y EficaciaRealizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y EficaciaAndres Almiray
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Dani Latorre
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Realizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficaciaRealizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficaciaSoftware Guru
 
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Introducción a Grails
Introducción a GrailsIntroducción a Grails
Introducción a Grailsjose diaz
 
Write gradle plugins escribir y publicar tus plugins de gradle made easy_
Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_
Write gradle plugins escribir y publicar tus plugins de gradle made easy_Jorge Aguilera
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a GroovyAlex Fuentes
 

Similar a Introducción a Groovy (20)

Introduccion a grails en Campusparty
Introduccion a grails en CampuspartyIntroduccion a grails en Campusparty
Introduccion a grails en Campusparty
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Taller Groovy
Taller GroovyTaller Groovy
Taller Groovy
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Seminario de Groovy y grails
Seminario de Groovy y grailsSeminario de Groovy y grails
Seminario de Groovy y grails
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivity
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Realizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y EficaciaRealizando Pruebas en la JVM con Velocidad y Eficacia
Realizando Pruebas en la JVM con Velocidad y Eficacia
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011Groovy Koans - SpringIO 2011
Groovy Koans - SpringIO 2011
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
 
Realizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficaciaRealizando pruebas en la JVM con velocidad y eficacia
Realizando pruebas en la JVM con velocidad y eficacia
 
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Introducción a Grails
Introducción a GrailsIntroducción a Grails
Introducción a Grails
 
Write gradle plugins escribir y publicar tus plugins de gradle made easy_
Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_Write gradle plugins  escribir y publicar tus plugins de gradle  made easy_
Write gradle plugins escribir y publicar tus plugins de gradle made easy_
 
Write Gradle Plugins
Write Gradle PluginsWrite Gradle Plugins
Write Gradle Plugins
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a Groovy
 

Más de Jose Juan R. Zuñiga

Más de Jose Juan R. Zuñiga (14)

Apps software development with Vert.X
Apps software development with Vert.XApps software development with Vert.X
Apps software development with Vert.X
 
A lil' of Groovy for Ruby developers
A lil' of Groovy for Ruby developersA lil' of Groovy for Ruby developers
A lil' of Groovy for Ruby developers
 
Herramientas para el desarrollo de software
Herramientas para el desarrollo de softwareHerramientas para el desarrollo de software
Herramientas para el desarrollo de software
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Webapps testing with Groovy
Webapps testing with GroovyWebapps testing with Groovy
Webapps testing with Groovy
 
Creación de plugins con Grails
Creación de plugins con GrailsCreación de plugins con Grails
Creación de plugins con Grails
 
El desarrollador de software
El desarrollador de softwareEl desarrollador de software
El desarrollador de software
 
Groovy in Java7mx
Groovy in Java7mxGroovy in Java7mx
Groovy in Java7mx
 
Mirando hacia atrás: Retrospectivas
Mirando hacia atrás: RetrospectivasMirando hacia atrás: Retrospectivas
Mirando hacia atrás: Retrospectivas
 
Equipos en Scrum ¡oing!
Equipos en Scrum ¡oing!Equipos en Scrum ¡oing!
Equipos en Scrum ¡oing!
 
Integrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloIntegrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrollo
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Spring
SpringSpring
Spring
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 

Último

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Introducción a Groovy

  • 1. Groovy: el lenguaje dinámico para la JVM José Juan R. Zuñiga (@neodevelop) @grailsmx
  • 2. Agenda • Introducción abierta(Open Source y lenguajes de desarrollo) • ¿Que es groovy? • Hola Mundo en Groovy • Azúcar Sintáctica • +Groovy en una mirada • Aplicaciones Desktop con Groovy • Acceso a base de datos con Groovy • Metaprogramación • Testing
  • 5. HolaMundo en Java public class HolaMundo { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola " + this.nombre + " !!!"; } public static void main(String[] args) { HolaMundo objeto = new HolaMundo(); objeto.setNombre("@grailsmx"); System.out.println(objeto.saluda()); } }
  • 6. HolaMundo en Groovy public class HolaMundo { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola " + this.nombre + " !!!"; } public static void main(String[] args) { HolaMundo objeto = new HolaMundo(); objeto.setNombre("@grailsmx"); System.out.println(objeto.saluda()); } }
  • 7. Mejor a la manera Groovy class HolaMundo { String nombre def saluda() { "Hola ${this.nombre} !!!" } } def objeto = new HolaMundo(nombre:"@grailsmx") println(objeto.saluda())
  • 8. ¿Cómo llegamos a esto…? • Tener el JDK instalado • Establecer la variable JAVA_HOME y agregarla al PATH en el subdirectorio /bin • Descargamos la distribución de Groovy en http:// groovy.codehaus.org/ • Creamos una variable de entorno GROOVY_HOME apuntando al directorio donde se descomprimió la distribución • Adicionalmente, incluir en el PATH el directorio / bin de la variable de entorno GROOVY_HOME, es decir: %GROOVY_HOME%/bin • Let’s rock the code!!!
  • 9. + Groovy en una mirada • Totalmente Orientado a objetos • Perfecta integración con Java • Closures • Convención de JavaBeans • Esencia vs. Ceremonia • Aritmética con BigDecimal por default para la operación de punto flotante • API’s amigables y prácticas • XML, JDBC, JMX, Swing • DSL(Domain Specific Language) • Builders • Sobrecarga de operadores • GDK
  • 10. Azúcar sintáctica + GDK • Listas – def numeros = [1,2,3,4,5] • Mapas – def mapa = [DF:'Distrito Federal',MTY:'Monterrey'] • Rangos – def rangos = 199..299 • Asignación Múltiple – def (a,b) = [10,20] • Return Opcional – def metodo(bool) { if(bool) 1 else 0 }
  • 11. Groovy en profundidad • Meta-programación – La habilidad de un lenguaje para modificarse a sí mismo • Transformaciones AST – @Singleton – @Inmutable, @Lazy, @Delegate – @Newify – @Category & @Mixin – @PackageScope – @Bindable & @Vetoable – @Grab
  • 18. Aun hay algo más… @grailsmx
  • 19. Esperen… @grailsmx
  • 21. ¿Preguntas? …o comentarios… springhispano.org grails.org.mx @neodevelop @grailsmx