SlideShare une entreprise Scribd logo
1  sur  24
Introducción a Grails José Juan R. Zuñiga (@neodevelop)
Agenda Lenguaje de Programación Groovy Plataforma Grails
Groovy
HolaMundo en Java publicclassHolaMundo { privateStringnombre; publicStringgetNombre() { returnnombre; 	} publicvoidsetNombre(String nombre) { this.nombre = nombre; 	} publicString saluda() { return"Hola " + this.nombre + " !!!"; 	} publicstaticvoidmain(String[] args) { HolaMundo objeto = newHolaMundo(); objeto.setNombre("@SG09Conf"); System.out.println(objeto.saluda()); 	} }
HolaMundo en Groovy publicclassHolaMundo { privateStringnombre; publicStringgetNombre() { return nombre; 	} publicvoidsetNombre(String nombre) { this.nombre = nombre; 	} publicString saluda() { return"Hola " + this.nombre + " !!!"; 	} publicstaticvoidmain(String[] args) { HolaMundo objeto = newHolaMundo(); objeto.setNombre("@SG09Conf"); System.out.println(objeto.saluda()); 	} }
Mejor a la manera Groovy classHolaMundo { Stringnombre def saluda() { "Hola  ${this.nombre} !!!" } } def objeto = newHolaMundo(nombre:"@SGConf") 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 thecode!!!
+ 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(DomainSpecificLanguage) Builders Sobrecarga de operadores GDK
Azúcar sintáctica + GDK Listas defnumeros = [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 defmetodo(bool) { if(bool) 1else0 }
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
Ahora hablemos de…
¿Qué es Grails? Un framework MVC full-stack
¿Qué es Grails? Totalmente orientado a objetos Dinámico Sintaxis familiar Perfecta integración con Java
¿Qué es Grails? Convención sobre configuración DRY (Don’trepeatyourself)
Stack de tecnologías de Grails
¿qué me provee? MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffoldingREST LayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring  flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui
Aun hay algo más…
Plugins acegiactivemqapp-engine axis2 background-thread barcode4j calendar ckeditorcommentabledbmapperdbunitdwrfacebook-connect file-uploaderflexgeoipgoogle-analyticsgoogle-chartgoogle-data gwt j2d javascriptjmsjmxjqueryldaplogging mail paypalquartzrecaptcharestrichuisearchableterracottatwittervaadinwavexfirexmlrpcyui ¡¡¡323 Plugins!!!
Let’scodeagain!!!
Esperen…
Offtopic: MundoJava Java Champs: @magoghm y @edivargas Estan promoviendo un nuevo proyecto Java estilo: World ofWarcraft Te están buscando a ti: programadores animadores músicos modeladores texturizadores diseñadores Es un proyecto Open Source Contacto: mago@mundojava.com Con el Subject: Mundo Java
Hay un regalo para los primeros 4 que…
Agradecimiento #cpartymx Area de innovación @springhispano @grailsmx Domingo Suarez Torres Eli
¿Preguntas? …o comentarios… http://springhispano.org http://grails.org.mx @neodevelop

Contenu connexe

Similaire à Introduccion a grails en Campusparty

Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Fátima Casaú Pérez
 
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
Software Guru
 
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
Jobsket
 

Similaire à Introduccion a grails en Campusparty (20)

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
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
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
 
Groovy
GroovyGroovy
Groovy
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
Tu api ha muerto larga vida a tu dsl
Tu api ha muerto  larga vida a tu dslTu api ha muerto  larga vida a tu dsl
Tu api ha muerto larga vida a tu dsl
 
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
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivity
 
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casaTypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
TypeScript para Javeros: Cómo programar web front-end y sentirse como en casa
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
C ++
C ++C ++
C ++
 
Taller Groovy
Taller GroovyTaller Groovy
Taller Groovy
 
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!
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
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_
 

Plus de Jose Juan R. Zuñiga

Herramientas para el desarrollo de software
Herramientas para el desarrollo de softwareHerramientas para el desarrollo de software
Herramientas para el desarrollo de software
Jose Juan R. Zuñiga
 

Plus de Jose Juan R. Zuñiga (18)

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
 
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
 
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
 
Redefiniendo el MVC con Grails
Redefiniendo el MVC con GrailsRedefiniendo el MVC con Grails
Redefiniendo el MVC con Grails
 
Spring
SpringSpring
Spring
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
 

Dernier

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
241521559
 
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
 
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
FagnerLisboa3
 

Dernier (10)

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
 
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)
 
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
 
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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
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...
 
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
 
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
 
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
 

Introduccion a grails en Campusparty

  • 1. Introducción a Grails José Juan R. Zuñiga (@neodevelop)
  • 2. Agenda Lenguaje de Programación Groovy Plataforma Grails
  • 4. HolaMundo en Java publicclassHolaMundo { privateStringnombre; publicStringgetNombre() { returnnombre; } publicvoidsetNombre(String nombre) { this.nombre = nombre; } publicString saluda() { return"Hola " + this.nombre + " !!!"; } publicstaticvoidmain(String[] args) { HolaMundo objeto = newHolaMundo(); objeto.setNombre("@SG09Conf"); System.out.println(objeto.saluda()); } }
  • 5. HolaMundo en Groovy publicclassHolaMundo { privateStringnombre; publicStringgetNombre() { return nombre; } publicvoidsetNombre(String nombre) { this.nombre = nombre; } publicString saluda() { return"Hola " + this.nombre + " !!!"; } publicstaticvoidmain(String[] args) { HolaMundo objeto = newHolaMundo(); objeto.setNombre("@SG09Conf"); System.out.println(objeto.saluda()); } }
  • 6. Mejor a la manera Groovy classHolaMundo { Stringnombre def saluda() { "Hola ${this.nombre} !!!" } } def objeto = newHolaMundo(nombre:"@SGConf") println(objeto.saluda())
  • 7. ¿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 thecode!!!
  • 8. + 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(DomainSpecificLanguage) Builders Sobrecarga de operadores GDK
  • 9. Azúcar sintáctica + GDK Listas defnumeros = [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 defmetodo(bool) { if(bool) 1else0 }
  • 10. 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
  • 12. ¿Qué es Grails? Un framework MVC full-stack
  • 13. ¿Qué es Grails? Totalmente orientado a objetos Dinámico Sintaxis familiar Perfecta integración con Java
  • 14. ¿Qué es Grails? Convención sobre configuración DRY (Don’trepeatyourself)
  • 16. ¿qué me provee? MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffoldingREST LayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui
  • 17. Aun hay algo más…
  • 18. Plugins acegiactivemqapp-engine axis2 background-thread barcode4j calendar ckeditorcommentabledbmapperdbunitdwrfacebook-connect file-uploaderflexgeoipgoogle-analyticsgoogle-chartgoogle-data gwt j2d javascriptjmsjmxjqueryldaplogging mail paypalquartzrecaptcharestrichuisearchableterracottatwittervaadinwavexfirexmlrpcyui ¡¡¡323 Plugins!!!
  • 21. Offtopic: MundoJava Java Champs: @magoghm y @edivargas Estan promoviendo un nuevo proyecto Java estilo: World ofWarcraft Te están buscando a ti: programadores animadores músicos modeladores texturizadores diseñadores Es un proyecto Open Source Contacto: mago@mundojava.com Con el Subject: Mundo Java
  • 22. Hay un regalo para los primeros 4 que…
  • 23. Agradecimiento #cpartymx Area de innovación @springhispano @grailsmx Domingo Suarez Torres Eli
  • 24. ¿Preguntas? …o comentarios… http://springhispano.org http://grails.org.mx @neodevelop