Upload
alberto-vilches
View
4.859
Download
0
Embed Size (px)
DESCRIPTION
Groovy para Programadores JavaCharla de 45 minutos para Madrid JUG en la Universidad Complutense de Informática de Madrid, el 29 de Septiembre de 2011
Citation preview
GROOVY PARA PROGRAMADORES JAVA
por Alberto Vilches http://albertovilches.com
Twitter: @albertovilches
SOBRE MI
Alberto Vilches
• Programador freelance en Grails y Flex
• Evangelizador Groovy y Grails
• http://albertovilches.com
• Twitter: @albertovilches
AGENDA
• Antes de empezar • Qué es Groovy • Groovy Console • Testing con Groovy • Compilandor • Config Slurper • Algunas cosas más
ANTES DE EMPEZAR
GROOVY != GRAILS
¿QUÉ DIFERENCIA HAY?
Groovy -> Lenguaje
Grails -> Plataforma desarrollo Web
¿QUÉ DIFERENCIA HAY?
Groovy -> Lenguaje Compilador y GDK
• groovy-1.8.jar
Grails -> Plataforma desarrollo Web
Groovy + Spring + Hibernate + Sitemesh + DBCP + Apache commons + Log4J + Junit + Ant +
ANTES DE EMPEZAR
ANTES DE EMPEZAR
JPA
Java app
ANTES DE EMPEZAR
¡No necesito Grails para usar Groovy
desde mi aplicación Java!
¿QUÉ ES GROOVY?
• Groovy es Java • Dinámico • Inspirado en Ruby, Python y Smalltalk • OOP puro • Closures, Gstrings, Builders, DSL
¿QUÉ ES GROOVY?
• Groovy es Java. • Dinámico • Inspirado en Ruby, Python y Smalltalk • OOP puro • Closures, Gstrings, Builders, DSL • No compile type-checking • Ligeramente más lento que Java
Groovy Console
GROOVY CONSOLE
http://groovyconsole.appspot.com
groovyConsole App
Testing
TESTING CON GROOVY
• Power Asserts
• GroovyTestCase
• Mocking • Closure as OnlyOneMethodInterface • Map as Interface • Expando • MOP • mockFor / stubFor
GROOVY POWER ASSERTS
GROOVY POWER ASSERTS
GROOVY POWER ASSERTS
GROOVY TEST CASE
• Añade nuevos assert*
• Y algunos métodos como shouldFail o notImplementedYet
• Nombres de métodos largos
GROOVY TEST CASE
• Añade nuevos assert*
• Y algunos métodos como shouldFail o notImplementedYet
• Nombres de métodos largos
MOCKING CON GROOVY
Closure as OnlyMethodInterface
MOCKING CON GROOVY
Map as Interface
MOCKING CON GROOVY
MOP: Meta Object Protocol
MOCKING CON GROOVY
Expando
MOCKING CON GROOVY
a
MOCKING CON GROOVY
a
MOCKING CON GROOVY
a
TESTING
¿Qué necesito para usar todo esto?
• groovy-1.8.jar en tu CLASSPATH
• Tus tests deben ser clases Groovy
• Heredar de GroovyTestCase (opcional)
TESTING: SPOCK
• http://code.google.com/p/spock/
Compilador
COMPILADOR
Leer
Compilar
Cargar
COMPILADOR
COMPILADOR: LEER
COMPILADOR: COMPILAR
COMPILADOR: CARGAR
COMPILADOR: CARGAR
COMPILADOR GROOVY
• GroovyShell
• Script
• Eval.me()
COMPILADOR: LEER
COMPILADOR: LEER
COMPILADOR: LEER
COMPILADOR
¡Leer + compilar + cargar + ejecutar!
COMPILADOR
¡Leer + compilar + cargar + ejecutar!
COMPILADOR
¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
COMPILADOR
¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
COMPILADOR
¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
Config Slurper
CONFIG SLURPER
• Alternativa a los ficheros Properties
• No texto plano -> ¡código groovy! • Valores nativos, no solo Strings • Anidado opcional
CONFIG SLURPER
CONFIG SLURPER
CONFIG SLURPER
CONFIG SLURPER
CONFIG SLURPER
CONFIG SLURPER
Y muchas cosas más…
SCRIPTS + SQL
• a
SCRIPTS + SQL
• a
DSLS Y BUILDERS
• a
¡GRACIAS!
¡¡¡¡NO!!!! ¿TE HA PARECIDO POCO?
GREACH = EVENTO DEDICADO A GROOVY
• 10€ (incluye comida)
• 10€ (incluye comida) • En Madrid, 4 de Nov. de 2011
• 10€ (incluye comida) • En Madrid, 4 de Nov. de 2011 • Apúntate en http://greach.es
¡GRACIAS!
¡Hasta la próxima!