Eleva tu capacidad con Groovy
-
Upload
domingo-suarez-torres -
Category
Technology
-
view
1.482 -
download
1
description
Transcript of Eleva tu capacidad con Groovy
![Page 1: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/1.jpg)
Eleva tu capacidadcon Groovy
Domingo Suarez Torres
![Page 2: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/2.jpg)
• JVM como plataforma
• Groovy
• Metaprogramación
• GDK
• Transformaciones AST
• Ecosistema Groovy
• Alternativas en la JVM
Agenda
![Page 3: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/7.jpg)
La JVM es unamaquina sofisticada
![Page 8: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/8.jpg)
¡¡Pero se puedejugar con ella!!
![Page 9: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/9.jpg)
![Page 10: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/10.jpg)
Java
![Page 11: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/11.jpg)
Groovy
![Page 12: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/12.jpg)
Groovy 100%
![Page 13: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/13.jpg)
DemoCompilar código Groovy a
Bytecode y usarlo desde Java
![Page 14: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/14.jpg)
MetaProgramación
![Page 15: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/15.jpg)
Escribir software que escriba/manipule otro
software, incluso a el mismo.http://en.wikipedia.org/wiki/Metaprogramming
![Page 16: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/16.jpg)
DemoAgregar métodos a una clase de la librería estándar de Java
![Page 17: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/17.jpg)
Técnicas
• ExpandoMetaclass
• Categorias
• Mixins
![Page 18: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/18.jpg)
ASTAbstract Syntax Tree
![Page 19: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/20.jpg)
![Page 21: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/21.jpg)
Muy útil para agregar información a los nodos
![Page 22: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/22.jpg)
Se puede usar en Groovy para hacer Metaprogramación
en tiempo de compilación
![Page 23: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/23.jpg)
DemoUsar anotaciones AST
![Page 24: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/24.jpg)
Creciendo el número de transformaciones.
Tu puedes crear las propias.
![Page 25: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/25.jpg)
Ecosistema Groovy
![Page 26: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/26.jpg)
![Page 27: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/27.jpg)
¿no te gusto Groovy?
![Page 28: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/28.jpg)
La plataformaJVM
![Page 29: Eleva tu capacidad con Groovy](https://reader034.fdocuments.net/reader034/viewer/2022052208/5588fd2bd8b42a9e3f8b4571/html5/thumbnails/29.jpg)
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