Seminario de Ing. en Informática               Cátedra: Pablo CossoColaborador: Nicolás Bello Camilletti               2do...
¿Que es Groovy? Lenguaje ágil y dinámico para la JVM Basado en Python, Ruby, Perl y Smalltalk Curva de aprendizaje casi...
Historia 29/08/2003: post de James Strachan  Nace Groovy. 16/03/2004: Propuesta JSR 241 29/03/2004: Se aprueba la JSR ...
Características Lenguaje interpretado Orientado a Objetos Fuertemente tipado Duck Typing (tipado dinámico) Se ejecuta...
Variables Tipado estático   Escribiendo el tipo explícitamente Tipado dinámico   Utilizando la palabra reservada def
Sistema de Tipos Numeros Enteros    Colecciones    Integer                        List    Long                       ...
Colecciones – Listas
Colecciones - Maps
Colecciones - Rangos
Strings y GStrings
Expresiones Regulares
Groovy Truth Boolean Cosas que son false    Colecciones vacías(listas, maps)    Iteradores y enumeradores sin mas elem...
Condicionales
Ciclos
Métodos
Closures (1) { [param1, param2 …] -> sentencia1; sentencia2... }
Closures (2)
Ciclos con closures (1) Each EachWithIndex Times
Ciclos con closures (2) Collect FindAll
Operadores Colección*.operación   Aplica la operación a cada elemento de la colección objeto?.operación  elvis operato...
Orientación a Objetos (1)
Orientación a Objetos (2)
OO (3) - Interfaces
GroovyBeans (1)
GroovyBeans (2) Con access modifier    Field Sin access modifier    Field privado    Mas getter y setter públicos (un...
Expando
Implementando Interfaces con Map
Excepciones
Concurrencia
Domain Specific Languages Muy buen soporte Concepto de Builders Sobrecarga de operadores Closures como parámetros Y m...
Soporte para Lenguajes de Marcado
Diferencias con java Defaults imports == es equals Return opcional This en métodos estáticos para clase The Groovy wa...
Ejemplos Java Groovy
Programación de GUI Wrapper de Swing  Usa Builders
Usar Groovy en: Integración de componentes Modelos de negocio muy dinámicos Pruebas de concepto Proyectos rápidos y ch...
No usar Groovy en: Algoritmos complejos    Cálculos intensivos Manejo de grandes cantidades de datos    Problema con c...
Groovy
Groovy
Groovy
Groovy
Groovy
Upcoming SlideShare
Loading in...5
×

Groovy

759

Published on

Clase de Groovy para Seminario de ingeniería en informática. Cátedra de Pablo Cosso. Clase a cargo de Nicolás Bello Camilletti.
Mas información y código fuente: http://www.assembla.com/spaces/clase-groovy/

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
759
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • FilosofíaLenguaje ágil y dinámico para la Java Virtual MachinePuntos fuertes de Java pero con características adicionales inspiradas en lenguajes como Python, Ruby y SmalltalkCurva de aprendizaje casi nula para desarrolladores JavaCódigo fácil de leer y mantener.Facilita la escritura de scripts Reducción de código estructural en aplicaciones web, GUI, de bases de datos o de consolaSimplifica el testeoSe integra sin problemas a objetos Java y librerías existentes.Compila directamente a bytecode de la JVM.Groovy is licensed under the Apache 2 license:http://www.apache.org/licenses/LICENSE-2.0.html
  • 29/08/2003: James Strachan hace un post en su blog dándole nacimiento a Groovy.16/03/2004: se propone al JCP, bajo la JSR 241 la especificación de Groovy dentro de la JVMJava Specification Request241: The Groovy Programming Language29/03/2004: se aprueba de forma unánime por todo el comité. La especificación se larga con una licencia estilo BSD / Apache02/01/2007: se lanza la versión 1.0 y durante este año Groovy gana el premio JAX al proyecto más innovador y creativo del año.
  • // Ahora vemos que cambiando la variable cambiamos el closure
  • An Expando is different from a map in that you can provide synthetic methods that you can call on the object.The player.greeting assignment passes in a closure to execute when greeting() is called on the Expando. Notice that the closure has access to the properties assigned to the Expando, even though these values may change over time, using Groovy's GString "$variableOrProperty" notation.
  • Builders are based on the builder pattern from the GOF design pattern book. It provides a way to build your own DSL and represents a powerful concept in Groovy
  • Default imports:java.io.*java.lang.*java.math.BigDecimaljava.math.BigIntegerjava.net.*java.util.*groovy.lang.*groovy.util.*
  • Groovy

    1. 1. Seminario de Ing. en Informática Cátedra: Pablo CossoColaborador: Nicolás Bello Camilletti 2do cuatrimestre 2011
    2. 2. ¿Que es Groovy? Lenguaje ágil y dinámico para la JVM Basado en Python, Ruby, Perl y Smalltalk Curva de aprendizaje casi nula Facilita la escritura de scripts Soporta Domain Specific Languages (DSL) Integración con Java
    3. 3. Historia 29/08/2003: post de James Strachan  Nace Groovy. 16/03/2004: Propuesta JSR 241 29/03/2004: Se aprueba la JSR 241 02/01/2007: se lanza la versión 1.0 07/12/2007: versión 1.1  se renombra a 1.5 Actualmente -> 1.8.#
    4. 4. Características Lenguaje interpretado Orientado a Objetos Fuertemente tipado Duck Typing (tipado dinámico) Se ejecuta sobre la JVM Soporte para DSL
    5. 5. Variables Tipado estático  Escribiendo el tipo explícitamente Tipado dinámico  Utilizando la palabra reservada def
    6. 6. Sistema de Tipos Numeros Enteros  Colecciones  Integer  List  Long  Map  BigInteger  Set  Byte  Short  Rangos Punto flotante  Strings  BigDecimal  Float  Expresiones Regulares  Double  Boolean
    7. 7. Colecciones – Listas
    8. 8. Colecciones - Maps
    9. 9. Colecciones - Rangos
    10. 10. Strings y GStrings
    11. 11. Expresiones Regulares
    12. 12. Groovy Truth Boolean Cosas que son false  Colecciones vacías(listas, maps)  Iteradores y enumeradores sin mas elementos  Strings vacios  Matchers de regex que no coinciden (=~)  Cero  null
    13. 13. Condicionales
    14. 14. Ciclos
    15. 15. Métodos
    16. 16. Closures (1) { [param1, param2 …] -> sentencia1; sentencia2... }
    17. 17. Closures (2)
    18. 18. Ciclos con closures (1) Each EachWithIndex Times
    19. 19. Ciclos con closures (2) Collect FindAll
    20. 20. Operadores Colección*.operación  Aplica la operación a cada elemento de la colección objeto?.operación  elvis operator  Similar a
    21. 21. Orientación a Objetos (1)
    22. 22. Orientación a Objetos (2)
    23. 23. OO (3) - Interfaces
    24. 24. GroovyBeans (1)
    25. 25. GroovyBeans (2) Con access modifier  Field Sin access modifier  Field privado  Mas getter y setter públicos (una property). Se pueden sobreescribir Property final  Field privado como final  Solo getter
    26. 26. Expando
    27. 27. Implementando Interfaces con Map
    28. 28. Excepciones
    29. 29. Concurrencia
    30. 30. Domain Specific Languages Muy buen soporte Concepto de Builders Sobrecarga de operadores Closures como parámetros Y muchos mas…
    31. 31. Soporte para Lenguajes de Marcado
    32. 32. Diferencias con java Defaults imports == es equals Return opcional This en métodos estáticos para clase The Groovy way… 
    33. 33. Ejemplos Java Groovy
    34. 34. Programación de GUI Wrapper de Swing  Usa Builders
    35. 35. Usar Groovy en: Integración de componentes Modelos de negocio muy dinámicos Pruebas de concepto Proyectos rápidos y chicos Scripting
    36. 36. No usar Groovy en: Algoritmos complejos  Cálculos intensivos Manejo de grandes cantidades de datos  Problema con creación de objetos por ser dinámico Sistemas con  Requerimientos bien definidos  Pocas posibilidades de evolución Proyectos muy grandes

    ×