Upload
domingo-suarez-torres
View
1.475
Download
1
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
Eleva tu capacidadcon Groovy
Domingo Suarez Torres
• JVM como plataforma
• Groovy
• Metaprogramación
• GDK
• Transformaciones AST
• Ecosistema Groovy
• Alternativas en la JVM
Agenda
https://github.com/synergyj/eleva-tu-capacidad-Groovy-sgce2011
http://slidesha.re/q3UUGM
Código
Presentación
@domix
#sgce2011
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
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.
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
La JVM es unamaquina sofisticada
¡¡Pero se puedejugar con ella!!
Java
Groovy
Groovy 100%
DemoCompilar código Groovy a
Bytecode y usarlo desde Java
MetaProgramación
Escribir software que escriba/manipule otro
software, incluso a el mismo.http://en.wikipedia.org/wiki/Metaprogramming
DemoAgregar métodos a una clase de la librería estándar de Java
Técnicas
• ExpandoMetaclass
• Categorias
• Mixins
ASTAbstract Syntax Tree
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
Muy útil para agregar información a los nodos
Se puede usar en Groovy para hacer Metaprogramación
en tiempo de compilación
DemoUsar anotaciones AST
Creciendo el número de transformaciones.
Tu puedes crear las propias.
Ecosistema Groovy
¿no te gusto Groovy?
La plataformaJVM
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
Domingo Suarez Torres