Groovy programadores Java - Codemotion 2012

1,669
-1

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,669
On Slideshare
0
From Embeds
0
Number of Embeds
1
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

×