Groovy para programadores JavaAlberto Vilches                  http://albertovilches.com                  Twitter: @albert...
Sobre miResponsable desarrollo Java/Grails enFundador del eventoEvangelizador Groovy y Grailshttp://albertovilches.comTwit...
agendaAntes de empezarQué es GroovyGroovy ConsoleTesting con GroovyCompilandorConfig SlurperAlgunas cosas más             ...
Antes de empezarGROOVY != GRAILS                                                           Alberto Vilches                ...
¿Qué diferencia hay?Groovy -> LenguajeGrails    -> Plataforma desarrollo Web                                              ...
¿Qué diferencia hay?Groovy -> Lenguaje         Compilador y GDK                       groovy-1.8.x.jarGrails      -> Plata...
Antes de empezar                                                       Alberto Vilches              @albertovilches – Grup...
Antes de empezar               Java app            JPA                                                       Alberto Vilch...
Antes de empezar               Java app            JPA                                                       Alberto Vilch...
Antes de empezar¡No necesito Grails para usar Groovydesde mi aplicación       Java!                                       ...
¿Qué es Groovy?Groovy es Java.DinámicoInspirado en Ruby, Python y SmalltalkOOP puroClosures, Gstrings, Builders, DSL      ...
¿Qué es Groovy?Groovy es Java.DinámicoInspirado en Ruby, Python y SmalltalkOOP puroClosures, Gstrings, Builders, DSLNo com...
Lenguaje groovyPunto y coma opcionalesClases y métodos public por defecto                                                 ...
Lenguaje groovyPunto y coma opcionalesClases y métodos public por defectoGetters y setters automáticosTipado opcional: def...
Lenguaje groovyPunto y coma opcionalesClases y métodos public por defectoGetters y setters automáticosTipado opcional: def...
Sintaxis nativa Colecciones                                                             Alberto Vilches                   ...
gdk                                               Alberto Vilches      @albertovilches – Grupo de usuarios de Groovy de Ma...
gdk                                               Alberto Vilches      @albertovilches – Grupo de usuarios de Groovy de Ma...
xmla                                                   Alberto Vilches          @albertovilches – Grupo de usuarios de Gro...
Groovy Console                                                   Alberto Vilches          @albertovilches – Grupo de usuar...
Groovy consolehttp://groovyconsole.appspot.com                             groovyConsole App                              ...
Testing                                                   Alberto Vilches          @albertovilches – Grupo de usuarios de ...
Testing con groovyPower AssertsGroovyTestCaseMocking  Closure as OnlyOneMethodInterface  Map as Interface  Expando  MOP  m...
GROOVY power asserts                                                        Alberto Vilches               @albertovilches ...
GROOVY power asserts                                                        Alberto Vilches               @albertovilches ...
GROOVY power asserts                                                        Alberto Vilches               @albertovilches ...
Groovy test caseAñade nuevos assert*Y algunos métodos como shouldFail o notImplementedYetNombres de métodos largos        ...
Groovy test caseAñade nuevos assert*Y algunos métodos como shouldFail o notImplementedYetNombres de métodos largos        ...
Mocking con groovyClosure as OnlyMethodInterface                                                              Alberto Vilc...
Mocking con groovyMap as Interface                                                        Alberto Vilches               @a...
Mocking con groovyMOP: Meta Object Protocol                                                            Alberto Vilches    ...
Mocking con groovy    Expando                                                        Alberto Vilches               @albert...
Mocking con groovya                                                            Alberto Vilches                   @albertov...
Mocking con groovya                                                            Alberto Vilches                   @albertov...
Mocking con groovya                                                            Alberto Vilches                   @albertov...
testing     ¿Qué necesito para usar todo esto?groovy-1.8.jar en tu CLASSPATHTus tests deben ser clases GroovyHeredar de Gr...
Testing: spockhttp://code.google.com/p/spock/                                                                           Al...
Compilador                                                 Alberto Vilches        @albertovilches – Grupo de usuarios de G...
compiladorLeer       Compilar                                                  Cargar                                     ...
compilador                                                      Alberto Vilches             @albertovilches – Grupo de usu...
Compilador: leer                                                       Alberto Vilches              @albertovilches – Grup...
Compilador: compilar                                                         Alberto Vilches                @albertovilche...
Compilador: cargar                                                        Alberto Vilches               @albertovilches – ...
Compilador: cargar                                                        Alberto Vilches               @albertovilches – ...
Compilador groovyGroovyShellScriptEval.me()                                                        Alberto Vilches        ...
Compilador: leer                                                       Alberto Vilches              @albertovilches – Grup...
Compilador: leer                                                       Alberto Vilches              @albertovilches – Grup...
Compilador: leer                                                       Alberto Vilches              @albertovilches – Grup...
compilador¡Leer + compilar + cargar + ejecutar!                                                                   Alberto ...
compilador¡Leer + compilar + cargar + ejecutar!                                                                   Alberto ...
compilador¡Leer + compilar + cargar + ejecutar!                                                         SALIDA            ...
compilador¡Leer + compilar + cargar + ejecutar!                                                ENTRADA                    ...
compilador¡Leer + compilar + cargar + ejecutar!                                                ENTRADA                    ...
compilador¡Leer + compilar + cargar + ejecutar!                                                ENTRADA                    ...
compilador                                            ENTRADAGroovy Templates                                             ...
Groovy templates                                                       Alberto Vilches              @albertovilches – Grup...
Groovy templates                                                       Alberto Vilches              @albertovilches – Grup...
Groovy templates                                                       Alberto Vilches              @albertovilches – Grup...
ResumenScriptsPueden incluir definiciones de clases.Pueden recibir un Binding con variables.Puede retornar un objeto:   St...
Config Slurper                                                   Alberto Vilches          @albertovilches – Grupo de usuar...
Config slurperAlternativa a los ficheros PropertiesNo texto plano -> ¡código groovy!Valores nativos, no solo StringsAnidad...
Config slurper                                                          Alberto Vilches                 @albertovilches – ...
Config slurper                                                          Alberto Vilches                 @albertovilches – ...
Config slurper                                                          Alberto Vilches                 @albertovilches – ...
Config slurperAgrupación por entornos                                                                          Alberto Vil...
Config slurperAgrupación por entornosserver.port = 8090 sobrescribe el valor 80, solo si  el entorno es development       ...
Config slurperComo leer un fichero de configuración desdeJava:                                                            ...
SCRIPTS                                               Alberto Vilches      @albertovilches – Grupo de usuarios de Groovy d...
Scripts#!/usr/bin/env groovy                                                                       Alberto Vilches        ...
Scripts#!/usr/bin/env groovy                                                                       Alberto Vilches        ...
SCRIPTS + SQL                                                  Alberto Vilches         @albertovilches – Grupo de usuarios...
Scripts + sqla                                                             Alberto Vilches                    @albertovilc...
Scripts + sqla                                                             Alberto Vilches                    @albertovilc...
Scripts + sqla                                                             Alberto Vilches                    @albertovilc...
¡GRACIAS! ¿Preguntas?                                                    Alberto Vilches           @albertovilches – Grupo...
Upcoming SlideShare
Loading in …5
×

Groovy programadores Java - Codemotion 2012

1,828 views
1,737 views

Published on

Slides de la presentación realizada en el Codemotion Madrid, el 24 de Marzo de 2012

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,828
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
49
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Groovy programadores Java - Codemotion 2012

  1. 1. Groovy para programadores JavaAlberto Vilches http://albertovilches.com Twitter: @albertovilches
  2. 2. Sobre miResponsable desarrollo Java/Grails enFundador del eventoEvangelizador Groovy y Grailshttp://albertovilches.comTwitter: @albertovilches Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  3. 3. agendaAntes de empezarQué es GroovyGroovy ConsoleTesting con GroovyCompilandorConfig SlurperAlgunas cosas más Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  4. 4. Antes de empezarGROOVY != GRAILS Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  5. 5. ¿Qué diferencia hay?Groovy -> LenguajeGrails -> Plataforma desarrollo Web Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  6. 6. ¿Qué diferencia hay?Groovy -> Lenguaje Compilador y GDK groovy-1.8.x.jarGrails -> Plataforma desarrollo Web Groovy + Spring + Hibernate + Sitemesh + DBCP + Apache commons + Log4J + Junit + Ant + Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  7. 7. Antes de empezar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  8. 8. Antes de empezar Java app JPA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  9. 9. Antes de empezar Java app JPA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  10. 10. Antes de empezar¡No necesito Grails para usar Groovydesde mi aplicación Java! Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  11. 11. ¿Qué es Groovy?Groovy es Java.DinámicoInspirado en Ruby, Python y SmalltalkOOP puroClosures, Gstrings, Builders, DSL Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  12. 12. ¿Qué es Groovy?Groovy es Java.DinámicoInspirado en Ruby, Python y SmalltalkOOP puroClosures, Gstrings, Builders, DSLNo compile type-checkingLigeramente más lento que Java Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  13. 13. Lenguaje groovyPunto y coma opcionalesClases y métodos public por defecto Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  14. 14. Lenguaje groovyPunto y coma opcionalesClases y métodos public por defectoGetters y setters automáticosTipado opcional: def Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  15. 15. Lenguaje groovyPunto y coma opcionalesClases y métodos public por defectoGetters y setters automáticosTipado opcional: defInterpolación de cadenas: “hola $foo”Sintaxis nativa para colecciones: [] y [:] list << valueSobrecarga de operadores if (saludo == “hola”) Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  16. 16. Sintaxis nativa Colecciones Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  17. 17. gdk Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  18. 18. gdk Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  19. 19. xmla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  20. 20. Groovy Console Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  21. 21. Groovy consolehttp://groovyconsole.appspot.com groovyConsole App Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  22. 22. Testing Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  23. 23. Testing con groovyPower AssertsGroovyTestCaseMocking Closure as OnlyOneMethodInterface Map as Interface Expando MOP mockFor / stubFor Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  24. 24. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  25. 25. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  26. 26. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  27. 27. Groovy test caseAñade nuevos assert*Y algunos métodos como shouldFail o notImplementedYetNombres de métodos largos Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  28. 28. Groovy test caseAñade nuevos assert*Y algunos métodos como shouldFail o notImplementedYetNombres de métodos largos Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  29. 29. Mocking con groovyClosure as OnlyMethodInterface Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  30. 30. Mocking con groovyMap as Interface Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  31. 31. Mocking con groovyMOP: Meta Object Protocol Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  32. 32. Mocking con groovy Expando Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  33. 33. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  34. 34. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  35. 35. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  36. 36. testing ¿Qué necesito para usar todo esto?groovy-1.8.jar en tu CLASSPATHTus tests deben ser clases GroovyHeredar de GroovyTestCase (opcional) Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  37. 37. Testing: spockhttp://code.google.com/p/spock/ Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  38. 38. Compilador Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  39. 39. compiladorLeer Compilar Cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  40. 40. compilador Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  41. 41. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  42. 42. Compilador: compilar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  43. 43. Compilador: cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  44. 44. Compilador: cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  45. 45. Compilador groovyGroovyShellScriptEval.me() Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  46. 46. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  47. 47. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  48. 48. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  49. 49. compilador¡Leer + compilar + cargar + ejecutar! Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  50. 50. compilador¡Leer + compilar + cargar + ejecutar! Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  51. 51. compilador¡Leer + compilar + cargar + ejecutar! SALIDA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  52. 52. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  53. 53. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  54. 54. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  55. 55. compilador ENTRADAGroovy Templates SALIDA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  56. 56. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  57. 57. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  58. 58. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  59. 59. ResumenScriptsPueden incluir definiciones de clases.Pueden recibir un Binding con variables.Puede retornar un objeto: String, Collection, Integer, etc. La instancia de una clase que se define en el propio Script. Un objeto class de este misma clase con el que luego trabajar.TemplatesPueden recibir un Map con variables.Siempre devuelve un String. Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  60. 60. Config Slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  61. 61. Config slurperAlternativa a los ficheros PropertiesNo texto plano -> ¡código groovy!Valores nativos, no solo StringsAnidado opcional Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  62. 62. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  63. 63. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  64. 64. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  65. 65. Config slurperAgrupación por entornos Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  66. 66. Config slurperAgrupación por entornosserver.port = 8090 sobrescribe el valor 80, solo si el entorno es development Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  67. 67. Config slurperComo leer un fichero de configuración desdeJava: Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  68. 68. SCRIPTS Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  69. 69. Scripts#!/usr/bin/env groovy Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  70. 70. Scripts#!/usr/bin/env groovy Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  71. 71. SCRIPTS + SQL Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  72. 72. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  73. 73. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  74. 74. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  75. 75. ¡GRACIAS! ¿Preguntas? Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid

×