30
Eleva tu capacidad con Groovy Domingo Suarez Torres

Eleva tu capacidad con Groovy

Embed Size (px)

DESCRIPTION

Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.

Citation preview

Page 1: Eleva tu capacidad con Groovy

Eleva  tu  capacidadcon  Groovy

Domingo  Suarez  Torres

Page 2: Eleva tu capacidad con Groovy

• JVM como plataforma

• Groovy

• Metaprogramación

• GDK

• Transformaciones AST

• Ecosistema Groovy

• Alternativas en la JVM

Agenda

Page 3: Eleva tu capacidad con Groovy

https://github.com/synergyj/eleva-tu-capacidad-Groovy-sgce2011

http://slidesha.re/q3UUGM

Código

Presentación

@domix

#sgce2011

Page 4: Eleva tu capacidad con Groovy

Acerca de...• Domingo Suárez Torres

• Estudie Ciencias de la Informática @ UPIICSA

• Fundador

• JavaUp.org, SpringHispano.org, grails.org.mx

• artesanos.de/software

• hackergarten.mx

• Creador y contribuyente de plugins de Grails

• Podcaster en ViveCodigo.org

• CTO en SynergyJ y clickOnero

Page 5: Eleva tu capacidad con Groovy

Preambulo

• Primero que nada, gracias a Pedro Galvan

• En SG ’08 hable por vez primera de Groovy

• 4 años después de aprender Groovy no me arrepiento

• Hasta la fecha ha sido una de mis mejores inversiones intelectuales.

Page 6: Eleva tu capacidad con Groovy

Java y la JVM como plataforma

El código Java de compila y se genera bytecode

JVM es la plataforma de ejecución que entiende bytecode

Existen muchas implementaciones de JVM. Para casi todos los sistemas operativos.

El bytecode se puede ejecutar en todas las implementaciones de la JVM

Page 7: Eleva tu capacidad con Groovy

La JVM es unamaquina sofisticada

Page 8: Eleva tu capacidad con Groovy

¡¡Pero se puedejugar con ella!!

Page 9: Eleva tu capacidad con Groovy
Page 10: Eleva tu capacidad con Groovy

Java

Page 11: Eleva tu capacidad con Groovy

Groovy

Page 12: Eleva tu capacidad con Groovy

Groovy 100%

Page 13: Eleva tu capacidad con Groovy

DemoCompilar código Groovy a

Bytecode y usarlo desde Java

Page 14: Eleva tu capacidad con Groovy

MetaProgramación

Page 15: Eleva tu capacidad con Groovy

Escribir software que escriba/manipule otro

software, incluso a el mismo.http://en.wikipedia.org/wiki/Metaprogramming

Page 16: Eleva tu capacidad con Groovy

DemoAgregar métodos a una clase de la librería estándar de Java

Page 17: Eleva tu capacidad con Groovy

Técnicas

• ExpandoMetaclass

• Categorias

• Mixins

Page 18: Eleva tu capacidad con Groovy

ASTAbstract Syntax Tree

Page 19: Eleva tu capacidad con Groovy

Es la representación en forma de árbol de la estructura sintáctica

abstracta de un lenguaje de programación

http://en.wikipedia.org/wiki/Abstract_syntax_tree

Page 20: Eleva tu capacidad con Groovy
Page 21: Eleva tu capacidad con Groovy

Muy útil para agregar información a los nodos

Page 22: Eleva tu capacidad con Groovy

Se puede usar en Groovy para hacer Metaprogramación

en tiempo de compilación

Page 23: Eleva tu capacidad con Groovy

DemoUsar anotaciones AST

Page 24: Eleva tu capacidad con Groovy

Creciendo el número de transformaciones.

Tu puedes crear las propias.

Page 25: Eleva tu capacidad con Groovy

Ecosistema Groovy

Page 26: Eleva tu capacidad con Groovy
Page 27: Eleva tu capacidad con Groovy

¿no te gusto Groovy?

Page 28: Eleva tu capacidad con Groovy

La plataformaJVM

Page 29: Eleva tu capacidad con Groovy

Créditos fotos• http://flic.kr/p/4dXpDi

• http://flic.kr/p/7BxSNS

• http://flic.kr/p/9ddJ8p

• http://flic.kr/p/58VCAi

• http://flic.kr/p/58ZNKL

• http://flic.kr/p/5NsmsK

• http://flic.kr/p/9EeKer

• http://flic.kr/p/MqxS3

Page 30: Eleva tu capacidad con Groovy

Domingo  Suarez  Torres

@[email protected]