Groovy para programadores Java

Post on 11-Jun-2015

4.858 views 0 download

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

Transcript of Groovy para programadores Java

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!