Introducción a groovy
-
Upload
donewtech-solutions -
Category
Technology
-
view
1.092 -
download
1
description
Transcript of Introducción a groovy
![Page 1: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/1.jpg)
Groovy
Grails ´11Donostia - San Sebastián,
27/09/11
Rubén Egiluz
Hacia Una JVM políglota
![Page 2: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/2.jpg)
![Page 3: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/3.jpg)
Follow me! @regiluze
Ingeniero informáticoen Donewtech
Apprentice Software Craftsmanship
Desarrollador de Java desde hace 7 años
Colaborador en Agile Norte
Colaborador en la asociacion JavaHispano
Rubén Egiluz
![Page 4: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/4.jpg)
agenda
Qué es Java
1
Qué es Groovy
2
Mi casa es tu casa
3
Viajando de .java a .groovy
4
Groovy en profundidad
5
Groovy Tools
6
Casos de éxito
7
Dudas y aclaraciones
8
![Page 5: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/5.jpg)
arrancamos conGroovy!
![Page 6: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/6.jpg)
¿Qué es java? 1
![Page 7: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/7.jpg)
Una plataforma
no un lenguaje…
![Page 8: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/8.jpg)
Java programming
language: sintaxis, etc.
Java Platform: Máquina virtual, formato bytecode, etc.
no un lenguaje…
Una plataforma
![Page 9: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/9.jpg)
JSR 901: Java Language Spec. (1996)
JSR 241: The Groovy Programing Languaje (2004)
JSR 274: The BeanShell Scripting Language (2005)
JSR 223: Scripting for the Java Platform (2006)
JSR 292: Supporting Dynamically typed Languages on the Java Platform (2011)
¿Varios lengüajes?
![Page 10: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/10.jpg)
¿Qué es groovy? 2
![Page 11: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/11.jpg)
"An agile and dynamic language for the java Virtual Machine"
Conceptos base de lenguaje java con inspiraciones de Ruby, Python y smalltalk
Totalmente orientado a objeto, pure OOP
Scripting
Permite dynamic typing y opcionalmente static typing
Integración completa con Java
![Page 12: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/12.jpg)
Mi casa es tu casa
3
![Page 13: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/13.jpg)
Interacción con lenguaje java transparente
TODO código groovy se ejecuta dentro de JVM
![Page 14: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/14.jpg)
Dos maneras de ejecutar classes groovy en la JVM
![Page 15: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/15.jpg)
¿Es un lenguaje interpretado?
![Page 16: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/16.jpg)
Viajando de .java a .groovy
4
![Page 17: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/17.jpg)
Viajando de .java a .groovy
![Page 18: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/18.jpg)
Viajando de .java a .groovy
Se elimina lo obvio
![Page 19: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/19.jpg)
Viajando de .java a .groovy
Se elimina lo ceremonioso
![Page 20: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/20.jpg)
Viajando de .java a .groovy
Tipos dinámicos
![Page 21: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/21.jpg)
Viajando de .java a .groovy
Interpolación de variables
![Page 22: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/22.jpg)
Viajando de .javaa .groovy
POJOS supervitaminados
![Page 23: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/23.jpg)
Viajando de .java a .groovy
Scripts
![Page 24: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/24.jpg)
Viajando de .java a .groovy
![Page 25: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/25.jpg)
Viajando de .java a .groovy
![Page 26: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/26.jpg)
Groovy en profundidad
5
![Page 27: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/27.jpg)
Groovy en profundidad
Closures
![Page 28: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/28.jpg)
Groovy en profundidad
Meta-programación (Meta-Object Protocol MOP)
![Page 29: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/29.jpg)
Groovy en profundidad
GDK versión "tuneada" del JDK
![Page 30: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/30.jpg)
Groovy en profundidad
Transformaciones AST
![Page 31: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/31.jpg)
Groovy en profundidad
DSL (Domain-Specific Language)
![Page 32: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/32.jpg)
Groovy en profundidad
Builders
![Page 33: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/33.jpg)
Groovy en profundidad
Sobrecarga de operadores
![Page 34: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/34.jpg)
Gpars
GStrings
Regex
Ranges
Memorize
![Page 35: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/35.jpg)
Groovy Tools 6
![Page 36: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/36.jpg)
IDE: plugins en Netbeans, eclipse o Spring Source Tool e IntellijIDEA
Construcción: Gant, Gradle
Frameworks: Grails, Griffon, Gaelyk
Testing: GroUnit, Spock, EasyB, Gmock, CodeNarc
Groovy Tools
![Page 37: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/37.jpg)
Casos de éxito 7
![Page 38: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/38.jpg)
Ayuntamiento de Vitoria: @grailsteiz
Escuela de groovy
Atlassian
EventBis / TicketBis
Sky.com
Casos de éxito
![Page 39: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/39.jpg)
Powered by
![Page 40: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/40.jpg)
Dudas y aclaraciones
![Page 41: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/41.jpg)
http://www.donewtech.com/http://agilemanifesto.org/iso/es/http://manifesto.softwarecraftsmanship.org/http://www.javahispano.org/http://norte.agile-spain.org/http://agile-spain.org/http://www.is-research.de/info/vmlanguages/category/jvm-language/http://www.jcp.org/en/jsr/detail?id=901http://www.jcp.org/en/jsr/detail?id=241http://www.jcp.org/en/jsr/detail?id=274http://www.jcp.org/en/jsr/detail?id=223http://jcp.org/en/jsr/detail?id=292http://www.flickr.com/photos/14358247@N05/3182971707/http://www.slideshare.net/aalmiray/introduccion-a-groovyhttp://www.slideshare.net/linkedin/grails-at-linked?src=embed
Referenciashttp://groovy.codehaus.org/http://www.manning.com/koenig/http://grails.org/http://docs.codehaus.org/display/GROOVY/Griffonhttp://gaelyk.appspot.com/http://gant.codehaus.org/http://codenarc.sourceforge.net/http://code.google.com/p/spock/http://code.google.com/p/gmock/http://www.easyb.org/http://twitter.com/#!/springrod/status/2035497810http://www.sky.com/http://www.eventbis.com/es_ES/index.htmhttp://www.ticketbis.com/http://grails.org/Testimonialshttp://www.grails.org/Success+Stories
![Page 42: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/42.jpg)
¡Gracias!Eskerrik asko!
Thanks! Merci!
Danke!¡Grácies!
!شكرا 謝謝!Grazie!
ευχαριστώ!
Obrigado!ありがとう!
![Page 43: Introducción a groovy](https://reader036.fdocument.pub/reader036/viewer/2022070323/5598fb021a28ab68718b4611/html5/thumbnails/43.jpg)