Transcript
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]


Recommended