0
Groovy&Grails: desarrollo
  rápido de aplicaciones
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Groovy&Grails?

•  Combinación perfecta para el desarrollo ...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Groovy?

•  Groovy en inglés significa genial

•  Otro leng...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Groovy?

•  Sintaxis típica de Java

•  Superclase de Java
...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿A quién va dirigido Groovy?


•  A los programadores Java

•  A lo...
Groovy & Grails: Desarrollo rápido de aplicaciones




Comparando Java y Groovy

•  Java & Groovy                         ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Groovy

•  Brevedad del lenguaje

    •  Groovy ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Declaración de clases
         class Libro ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Scripts en Groovy

         Libro cgg = new...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  GroovyBeans
          /*Un Bean en Java*/
 ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  GroovyBeans

         /*Un Bean en Groovy*/...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Cadenas de texto

    •  GString

         ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Los números son objetos


         def x = ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Listas, mapas y rangos

    •  Groovy facil...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Listas, mapas y rangos

  def sesiones = [
...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Listas, mapas y rangos

  def http = [
    ...
Groovy & Grails: Desarrollo rápido de aplicaciones




El código de Groovy

•  Listas, mapas y rangos

  def x = 1..10
  a...
Groovy & Grails: Desarrollo rápido de aplicaciones




Closures

•  Bloques de código anónimo definido entre llaves

 def ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Closures

•  Nos permiten ser más ágiles programando

 ['Pedro','Lo...
Groovy & Grails: Desarrollo rápido de aplicaciones




Estructuras de control en Groovy

•  Los típicos if-else, while, sw...
Groovy & Grails: Desarrollo rápido de aplicaciones




Estructuras de control en Groovy

•  O mediante closures

  def alu...
Groovy & Grails: Desarrollo rápido de aplicaciones




Groovy para escribir DSL’s

•  Un DSL (Domain Specific Language) es...
Groovy & Grails: Desarrollo rápido de aplicaciones




Groovy para escribir DSL’s

•  Con un DSL podremos tener cosas como...
Groovy & Grails: Desarrollo rápido de aplicaciones




Groovy en el entorno Java

•  Groovy puede ser ejecutado en la JVM:...
Groovy & Grails: Desarrollo rápido de aplicaciones




GDK: la librería Groovy

•  GDK es una extensión a la librería JDK
...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Grails?

•  “Grails es un framework para el desarrollo de
 ...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Grails?

•  Basado en el patrón Modelo Vista Controlador

 ...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Grails?

•  El programador se olvida de determinados
   asp...
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Grails?

•  Grails no sólo es un framework de desarrollo
  ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Tests


    •  Tests unitarios


    ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Scaffolding


   “Generación automáti...
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Mapeo objeto-relacional

    •  GORM ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Plugins


    •  Seguridad
    •  AJA...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Grails no sufre del síndrome NIH (No...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Groovy
    •  Lenguaje dinámico
    ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Framework Spring

    •  Framework a...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Hibernate

    •  Framework de persi...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  SiteMesh

    •  Renderizado HTML


...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Frameworks AJAX

    •  Script.aculo...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Jetty

    •  Contenedor web


    •...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  HSQLDB

    •  Gestor de base de dat...
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  JUnit

    •  Framework para la real...
Groovy & Grails: Desarrollo rápido de aplicaciones




Arquitectura
Groovy & Grails: Desarrollo rápido de aplicaciones




Arquitectura

•  Herramientas en línea de comandos
    •  Facilita ...
Groovy & Grails: Desarrollo rápido de aplicaciones




Arquitectura

•  Ejecución de un proyecto en Grails
Groovy & Grails: Desarrollo rápido de aplicaciones




Ejemplos desarrollados con Grails

•  Jobsket (http://www.jobsket.c...
Groovy & Grails: Desarrollo rápido de aplicaciones




Enlaces de interés

•  http://groovy.codehaus.org

•  http://grails...
Groovy & Grails: Desarrollo rápido de aplicaciones




Contacto

•  http://www.frangarcia.net

•  fgarciarico@gmail.com

•...
Upcoming SlideShare
Loading in...5
×

Groovy&Grails: desarrollo rápido de aplicaciones

5,376

Published on

Presentación sobre Groovy&Grails: desarrollo rápido de aplicaciones para la Asociación de Desarrolladores Web de Alicante.

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

  • Be the first to like this

No Downloads
Views
Total Views
5,376
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
174
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Paraquealgo se autodenominecomo genial, tienequeestarmuyseguro de simismo, al igualquealguiencuando le pone supropionombre a unaempresao un producto. Hay más de 100 lenguajesque se puedenejecutar en la Máquina Virtual de Java. Fuente: http://en.wikipedia.org/wiki/List_of_JVM_languages.
  • Cuandovemosunaclaseo un script en Groovy, detectaremossusimilitud con JavaSe puededecirque Groovy esunasuperclase de Java, puestoquepuedeutilizartodaslascaracterísticas de Java junto con algunasmáspropias de GroovyUno de los aspectosquemásrechazan de Java muchosdesarrolladoresessuverborrea en determinadasocasionesy se necesitademasiadocódigoparahacermuypoco.
  • A los programadores Java, puestoque en el fondo Groovy es JavaA los programadores de scripts, puestoquees un lenguajemuyexpresivoyquepuedeconseguir mucho con muypococódigo, algoque a estetipo de desarrolladores les encanta.A los programadoreságilesyextremosyaquepuedenimplementarfácilmentesusteorias (SCRUM, XP)
  • En Java, un simple programaqueimprima el típicoHolaMundo, suponeescribirmuchaslíneas de código. En Groovy se evita mucho de estecódigoparaconseguir lo mismo.Al evitarestecódigo “innecesario”, se aumenta la expresividad del lenguaje, puestoque con menos se dice másGroovy importaautomáticamente los paquetesgroovy.lang.*, groovy.util.*, java.lang.*, java.util.*, java.net.* yjava.io.*, asícomolasclasesjava.Math.BigIntegeryjava.Math.BigDecimal, asíquesiempre vas a poderutilizartodasestasclases sin necesidad de queseanimportadossuspaquetes al inicio del programa. Estotambiénesdiferente a Java, dondesólo se importaautomáticamente el paquetejava.lang.*.
  • Este sería un bean en Java que define la clase Libro con una única propiedad, sobre el cual se definen sus getters y sus setters
  • Este es el mismo bean en Groovy. En Groovy si tenemos una propiedad pública, automáticamente se crea el getter y el setter de dicha propiedad.
  • Estoque los programadores LAMPven normal, en Java no estan obvio y suele necesitarse mucho código para conseguir lo mismo
  • De igual forma que antes, esto es obvio para los programadores LAMP, pero no tanto para desarrolladores del mundo Java.
  • Groovy hereda de Java los típicos if-else, while, switch y try-catch-finally de Java, pero modifica la forma en la que se implementan los bucles for
  • Los tests unitarios son aquellos que comprueban la validez de nuestras clases sin tener en cuenta las relaciones con el resto del sistema (otras clases, sistema de ficheros, conexiones de red, etc)Los tests de integración comprueban la validez de nuestras clases cuando se relacionan con el resto del sistema (otras clases, sistema de ficheros, conexiones de red, etc)Los tests funcionales comprueban la funcionalidad de nuestra aplicación. Selenium y Canoo son dos frameworks que nos permitirán desarrollar este tipo de tests
  • Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails
  • El mapeo objeto-relacional nos permite trabajar convertir datos obtenidos de una base de datos relacional para poder trabajar con los paradigmas de los lenguajes orientados a objetos
  • Comentar la comunidadcadavezmásgrande de pluginsdesarrolladosporlos usuarios. Hay cerca de 350 plugins disponibles para la comunidad de desarrolladores Grails. Este número sigue en aumento.
  • Comentarque en la versión 1.2 se añade la posibilidad de utilizar Tomcat comocontenedorde aplicaciones. Hacer hincapie en que no es único sobre el que funcionarán nuestras aplicaciones hechas en Grails, sino que simplemente es este el que viene en la distribución de Grails para ejecutar nuestra aplicación
  • Comentar los tres niveles por defecto con los que viene Grails, (desarrollo, test y producción) y que posteriormente veremos un ejemplo del fichero de configuración del acceso a la base de datos
  • Transcript of "Groovy&Grails: desarrollo rápido de aplicaciones"

    1. 1. Groovy&Grails: desarrollo rápido de aplicaciones
    2. 2. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Groovy&Grails? •  Combinación perfecta para el desarrollo rápido de aplicaciones •  Groovy  Lenguaje de programación •  Grails  Entorno completo de desarrollo (framework MVC, base de datos, tests, contenedor web)
    3. 3. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Groovy? •  Groovy en inglés significa genial •  Otro lenguaje de la plataforma Java •  Lenguaje de programación ágil y dinámico •  Características típicas de lenguajes como Python, Ruby o Smalltalk
    4. 4. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Groovy? •  Sintaxis típica de Java •  Superclase de Java •  Evita la ceremonia de Java
    5. 5. Groovy & Grails: Desarrollo rápido de aplicaciones ¿A quién va dirigido Groovy? •  A los programadores Java •  A los programadores de scripts •  A los programadores ágiles y extremos
    6. 6. Groovy & Grails: Desarrollo rápido de aplicaciones Comparando Java y Groovy •  Java & Groovy •  Groovy •  Mecanismo de paquetes •  Nuevas expresiones y •  Sentencias operadores •  Definición de clases y métodos •  Nuevas formas de declarar •  Estructuras de control objetos •  Operadores, asignaciones y •  Nuevas estructuras de control expresiones •  Nuevos tipos de datos con sus •  Manejo de excepciones operadores y expresiones •  Declaración de literales •  Todo es un objeto •  Instanciación de objetos y llámadas a métodos
    7. 7. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Groovy •  Brevedad del lenguaje •  Groovy evita la ceremonía que acompaña a Java •  Aumenta la expresividad del lenguaje (se dice más con menos) •  Importa automáticamente varios paquetes
    8. 8. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Declaración de clases class Libro { private String titulo Libro (String elTitulo){ titulo = elTitulo } String getTitulo(){ return titulo } }
    9. 9. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Scripts en Groovy Libro cgg = new Libro('Curso GroovyGrails') assert cgg.getTitulo() == 'Curso GroovyGrails’ assert getTituloAlReves(cgg) == 'sliarGyvoorG osruC' String getTituloAlReves(libro) { titulo = libro.getTitulo() return titulo.reverse() }
    10. 10. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  GroovyBeans /*Un Bean en Java*/ class Libro{ String titulo; String getTitulo(){ return this.titulo; } void setTitulo(String str){ this.titulo = new String(str); } }
    11. 11. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  GroovyBeans /*Un Bean en Groovy*/ class Libro{ String titulo }
    12. 12. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Cadenas de texto •  GString def part1 = 'groovy' def part2 = 'grails' assert "me gusta groovy grails" == "me gusta $part1 $part2"
    13. 13. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Los números son objetos def x = 1 def y = 2 assert x + y == 3 assert x.plus(y) == 3 assert x instanceOf Integer
    14. 14. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Listas, mapas y rangos •  Groovy facilita el trabajo con este tipo de colecciones de datos
    15. 15. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Listas, mapas y rangos def sesiones = [ 'Introducción a Groovy', 'El lenguaje Groovy', 'Aspectos avanzados en Groovy'] assert sesiones[1] == 'El lenguaje Groovy' sesiones[3] = 'Librerías propias de Groovy’
    16. 16. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Listas, mapas y rangos def http = [ 100 : 'Continue’, 200 : 'OK’, 400 : 'Bad Request' ] assert http[200] == 'OK'
    17. 17. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  Listas, mapas y rangos def x = 1..10 assert x.contains(2) assert x.size() == 10 assert x.reverse() == 10..1
    18. 18. Groovy & Grails: Desarrollo rápido de aplicaciones Closures •  Bloques de código anónimo definido entre llaves def ayer = {Date dia -> dia - 1} ayer.call(new Date())
    19. 19. Groovy & Grails: Desarrollo rápido de aplicaciones Closures •  Nos permiten ser más ágiles programando ['Pedro','Lola','Juan'].each { it -> println(it) }
    20. 20. Groovy & Grails: Desarrollo rápido de aplicaciones Estructuras de control en Groovy •  Los típicos if-else, while, switch y try-catch-finally •  El bloque for utiliza la notacion for (i in x) { cuerpo} for(i in 1..10) println i for(i in [1,2,3,4,5,6,7,8,9,10]) println i
    21. 21. Groovy & Grails: Desarrollo rápido de aplicaciones Estructuras de control en Groovy •  O mediante closures def alumnos = ['Pedro','Miguel','Alejandro','Elena'] alumnos.each{nombre -> println nombre}
    22. 22. Groovy & Grails: Desarrollo rápido de aplicaciones Groovy para escribir DSL’s •  Un DSL (Domain Specific Language) es un lenguaje de programación específico dedicado a resolver un problema particular •  DSL’s típicos: reglas financieras o de base de datos
    23. 23. Groovy & Grails: Desarrollo rápido de aplicaciones Groovy para escribir DSL’s •  Con un DSL podremos tener cosas como: //Funciones para sumar cantidades de tiempo 5.dias + 4.semanas + 3.horas //Funciones típicas de GORM def lista = Persona.findByNombre("Manuel”)
    24. 24. Groovy & Grails: Desarrollo rápido de aplicaciones Groovy en el entorno Java •  Groovy puede ser ejecutado en la JVM: •  Compilando con groovyc •  Sin compilar
    25. 25. Groovy & Grails: Desarrollo rápido de aplicaciones GDK: la librería Groovy •  GDK es una extensión a la librería JDK •  Facilita el acceso a base de datos y procesamiento de XML •  Extiende las funcionalidades de Java
    26. 26. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Grails? •  “Grails es un framework para el desarrollo de aplicaciónes web basado en el lenguaje de programación Groovy, que a su vez se basa en la Plataforma Java” •  Se basa en los paradigmas CoC (Convención sobre Configuración) y DRY (don’t repeat yourself)
    27. 27. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Grails? •  Basado en el patrón Modelo Vista Controlador •  Modelo  Clases de dominio •  Controladores •  Vista  Páginas GSP (Groovy Server Pages)
    28. 28. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Grails? •  El programador se olvida de determinados aspectos de configuración •  Groovy acorta los tiempos de desarrollo •  Grails es un framework muy ágil
    29. 29. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Grails? •  Grails no sólo es un framework de desarrollo web que sigue el patrón MVC, sino que es una plataforma completa de desarrollo •  Contenedor/servidor web •  Gestor de base de datos •  Empaquetado de la aplicación •  Realización de tests
    30. 30. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Tests •  Tests unitarios •  Tests de integración •  Tests funcionales
    31. 31. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Scaffolding “Generación automática de código para las cuatro operaciones básicas de cualquier aplicación, que son la creación, lectura, edición y borrado”
    32. 32. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Mapeo objeto-relacional •  GORM (Grails Object Relational Mapping) •  Uno a uno •  Uno a muchos •  Muchos a muchos
    33. 33. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Plugins •  Seguridad •  AJAX •  Realización de tests •  Búsqueda •  Informes
    34. 34. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Grails no sufre del síndrome NIH (Not Invented Here) e integra las mejores soluciones de software libre para conseguir un framework muy robusto
    35. 35. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Groovy •  Lenguaje dinámico •  Potente y flexible •  Sintaxis sencilla •  Integración con Java
    36. 36. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Framework Spring •  Framework ampliamente utilizado por los desarrolladores Java •  Muchos años de experiencia
    37. 37. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Hibernate •  Framework de persistencia objeto-relacional •  Es la base de GORM •  Mapea clases de dominio contra las tablas de una base de datos
    38. 38. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  SiteMesh •  Renderizado HTML •  Patrón de diseño Decorator
    39. 39. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Frameworks AJAX •  Script.aculo.us •  Rico •  Prototype
    40. 40. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Jetty •  Contenedor web •  No es el único sobre el que funciona Grails
    41. 41. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  HSQLDB •  Gestor de base de datos •  Almacenamiento en memoria o en disco
    42. 42. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  JUnit •  Framework para la realización de tests unitarios •  Muy extendido en Java
    43. 43. Groovy & Grails: Desarrollo rápido de aplicaciones Arquitectura
    44. 44. Groovy & Grails: Desarrollo rápido de aplicaciones Arquitectura •  Herramientas en línea de comandos •  Facilita la escritura de código •  Facilita la gestión de nuestros proyectos •  Basado en Gant, un sistema de automatización de tareas basado en Apache Ant
    45. 45. Groovy & Grails: Desarrollo rápido de aplicaciones Arquitectura •  Ejecución de un proyecto en Grails
    46. 46. Groovy & Grails: Desarrollo rápido de aplicaciones Ejemplos desarrollados con Grails •  Jobsket (http://www.jobsket.com) •  Uifi (http://www.uifi.es) •  Aloja (http://www4.uc3m.es/aloja)
    47. 47. Groovy & Grails: Desarrollo rápido de aplicaciones Enlaces de interés •  http://groovy.codehaus.org •  http://grails.org •  http://www.escueladegroovy.com •  http://www.jtech.ua.es/grails
    48. 48. Groovy & Grails: Desarrollo rápido de aplicaciones Contacto •  http://www.frangarcia.net •  fgarciarico@gmail.com •  http://www.twitter.com/frangarcia •  http://www.linkedin.com/in/frangarcia
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×