Your SlideShare is downloading. ×
Groovy programadores Java - Codemotion 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Groovy programadores Java - Codemotion 2012

1,535
views

Published on

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

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,535
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
47
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Groovy para programadores JavaAlberto Vilches http://albertovilches.com Twitter: @albertovilches
  • 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. agendaAntes de empezarQué es GroovyGroovy ConsoleTesting con GroovyCompilandorConfig SlurperAlgunas cosas más Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 4. Antes de empezarGROOVY != GRAILS Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 5. ¿Qué diferencia hay?Groovy -> LenguajeGrails -> Plataforma desarrollo Web Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. Antes de empezar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 8. Antes de empezar Java app JPA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 9. Antes de empezar Java app JPA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. ¿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. ¿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. Lenguaje groovyPunto y coma opcionalesClases y métodos public por defecto Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. 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. Sintaxis nativa Colecciones Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 17. gdk Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 18. gdk Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 19. xmla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 20. Groovy Console Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 21. Groovy consolehttp://groovyconsole.appspot.com groovyConsole App Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 22. Testing Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 25. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 26. GROOVY power asserts Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. 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. Mocking con groovyClosure as OnlyMethodInterface Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 30. Mocking con groovyMap as Interface Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 31. Mocking con groovyMOP: Meta Object Protocol Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 32. Mocking con groovy Expando Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 33. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 34. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 35. Mocking con groovya Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. Testing: spockhttp://code.google.com/p/spock/ Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 38. Compilador Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 39. compiladorLeer Compilar Cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 40. compilador Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 41. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 42. Compilador: compilar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 43. Compilador: cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 44. Compilador: cargar Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 45. Compilador groovyGroovyShellScriptEval.me() Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 46. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 47. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 48. Compilador: leer Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 49. compilador¡Leer + compilar + cargar + ejecutar! Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 50. compilador¡Leer + compilar + cargar + ejecutar! Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 51. compilador¡Leer + compilar + cargar + ejecutar! SALIDA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 52. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 53. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 54. compilador¡Leer + compilar + cargar + ejecutar! ENTRADA baseImponible IRPF IVA codigo SALIDA String Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 55. compilador ENTRADAGroovy Templates SALIDA Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 56. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 57. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 58. Groovy templates Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. Config Slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 63. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 64. Config slurper Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 65. Config slurperAgrupación por entornos Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 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. Config slurperComo leer un fichero de configuración desdeJava: Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 68. SCRIPTS Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 69. Scripts#!/usr/bin/env groovy Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 70. Scripts#!/usr/bin/env groovy Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 71. SCRIPTS + SQL Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 72. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 73. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 74. Scripts + sqla Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
  • 75. ¡GRACIAS! ¿Preguntas? Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid