SlideShare a Scribd company logo
1 of 48
Download to read offline
Groovy&Grails: desarrollo
  rápido de aplicaciones
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)
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
Groovy & Grails: Desarrollo rápido de aplicaciones




¿Qué es Groovy?

•  Sintaxis típica de Java

•  Superclase de Java

•  Evita la ceremonia de Java
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
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
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
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
                  
}
         }
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()
         }
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);   

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




El código de Groovy

•  GroovyBeans

         /*Un Bean en Groovy*/
         class Libro{
                  
String titulo
         }
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"
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
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
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’
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'
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
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())
Groovy & Grails: Desarrollo rápido de aplicaciones




Closures

•  Nos permiten ser más ágiles programando

 ['Pedro','Lola','Juan'].each { it -> println(it) }
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
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}
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
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”)
Groovy & Grails: Desarrollo rápido de aplicaciones




Groovy en el entorno Java

•  Groovy puede ser ejecutado en la JVM:

    •  Compilando con groovyc

    •  Sin compilar
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
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)
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)
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
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
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Tests


    •  Tests unitarios


    •  Tests de integración


    •  Tests funcionales
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”
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
Groovy & Grails: Desarrollo rápido de aplicaciones




Características de Grails

•  Plugins


    •  Seguridad
    •  AJAX
    •  Realización de tests
    •  Búsqueda
    •  Informes
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
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
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
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
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  SiteMesh

    •  Renderizado HTML


    •  Patrón de diseño Decorator
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  Frameworks AJAX

    •  Script.aculo.us


    •  Rico


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




Software de código abierto

•  Jetty

    •  Contenedor web


    •  No es el único sobre el que funciona Grails
Groovy & Grails: Desarrollo rápido de aplicaciones




Software de código abierto

•  HSQLDB

    •  Gestor de base de datos


    •  Almacenamiento en memoria o en disco
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
Groovy & Grails: Desarrollo rápido de aplicaciones




Arquitectura
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
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.com)

•  Uifi (http://www.uifi.es)

•  Aloja (http://www4.uc3m.es/aloja)
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
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

More Related Content

What's hot

Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2Micael Gallego
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoMicael Gallego
 
Java script tarea
Java script tareaJava script tarea
Java script tareasaullopes24
 
To mock or not to mock
To mock or not to mockTo mock or not to mock
To mock or not to mockEloi Poch
 
Symfony Pruebas Unitarias
Symfony Pruebas UnitariasSymfony Pruebas Unitarias
Symfony Pruebas UnitariasRodrigo Miranda
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreHillmerC
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011jose diaz
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDAlea Soluciones, S.L.
 
Junit con netbeans
Junit con netbeansJunit con netbeans
Junit con netbeansbachispasaca
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 

What's hot (20)

Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Testing, tipos y otros flamewars
Testing, tipos y otros flamewarsTesting, tipos y otros flamewars
Testing, tipos y otros flamewars
 
TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2TypeScript - Angular 2 - ionic 2
TypeScript - Angular 2 - ionic 2
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Java script tarea
Java script tareaJava script tarea
Java script tarea
 
To mock or not to mock
To mock or not to mockTo mock or not to mock
To mock or not to mock
 
Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
 
Symfony Pruebas Unitarias
Symfony Pruebas UnitariasSymfony Pruebas Unitarias
Symfony Pruebas Unitarias
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Gradle vs Maven
Gradle vs MavenGradle vs Maven
Gradle vs Maven
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDD
 
Junit con netbeans
Junit con netbeansJunit con netbeans
Junit con netbeans
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 

Viewers also liked

Certificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoCertificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoJose Manuel Ortega Candel
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Manual de uso de la web 2.0
Manual de uso de la web 2.0Manual de uso de la web 2.0
Manual de uso de la web 2.0Domingo Gallardo
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareDomingo Gallardo
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoChema Alonso
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with TacytChema Alonso
 

Viewers also liked (20)

Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Certificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoCertificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del experto
 
Privacidad internet
Privacidad internetPrivacidad internet
Privacidad internet
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Inteligencia Colectiva
Inteligencia ColectivaInteligencia Colectiva
Inteligencia Colectiva
 
Por su seguridad
Por su seguridadPor su seguridad
Por su seguridad
 
Certificaciones tecnológicas
Certificaciones tecnológicasCertificaciones tecnológicas
Certificaciones tecnológicas
 
Herramientas gestion proyectos
Herramientas gestion proyectosHerramientas gestion proyectos
Herramientas gestion proyectos
 
Kanban
KanbanKanban
Kanban
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Manual de uso de la web 2.0
Manual de uso de la web 2.0Manual de uso de la web 2.0
Manual de uso de la web 2.0
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
Desarrollo rápido de aplicaciones
Desarrollo rápido de aplicacionesDesarrollo rápido de aplicaciones
Desarrollo rápido de aplicaciones
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de software
 
Testing NodeJS Security
Testing NodeJS SecurityTesting NodeJS Security
Testing NodeJS Security
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en Magento
 
Footprinting tools for security auditors
Footprinting tools for security auditorsFootprinting tools for security auditors
Footprinting tools for security auditors
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with Tacyt
 

Similar to Groovy&Grails: desarrollo rápido de aplicaciones

Introducción a Grails
Introducción a GrailsIntroducción a Grails
Introducción a Grailsjose diaz
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a GroovyAlex Fuentes
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaDomingo Suarez Torres
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y GoJM Robles
 
Groovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaGroovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaEscuela de Groovy
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 
GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29Jorge Hidalgo
 

Similar to Groovy&Grails: desarrollo rápido de aplicaciones (20)

Introducción a Grails
Introducción a GrailsIntroducción a Grails
Introducción a Grails
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a Groovy
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Grails en el Fonasol
Grails en el FonasolGrails en el Fonasol
Grails en el Fonasol
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
Grails
GrailsGrails
Grails
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 
Groovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla rojaGroovy y Grails, y la pastilla roja
Groovy y Grails, y la pastilla roja
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29
 
Day01
Day01Day01
Day01
 
Taller Groovy
Taller GroovyTaller Groovy
Taller Groovy
 

Recently uploaded

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Recently uploaded (16)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Groovy&Grails: desarrollo rápido de aplicaciones

  • 1. Groovy&Grails: desarrollo rápido de aplicaciones
  • 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones ¿Qué es Groovy? •  Sintaxis típica de Java •  Superclase de Java •  Evita la ceremonia de Java
  • 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. 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. 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. 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. 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones El código de Groovy •  GroovyBeans /*Un Bean en Groovy*/ class Libro{ String titulo }
  • 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. 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. 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. 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. 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. 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones Closures •  Nos permiten ser más ágiles programando ['Pedro','Lola','Juan'].each { it -> println(it) }
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Tests •  Tests unitarios •  Tests de integración •  Tests funcionales
  • 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones Características de Grails •  Plugins •  Seguridad •  AJAX •  Realización de tests •  Búsqueda •  Informes
  • 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. 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. 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  SiteMesh •  Renderizado HTML •  Patrón de diseño Decorator
  • 39. Groovy & Grails: Desarrollo rápido de aplicaciones Software de código abierto •  Frameworks AJAX •  Script.aculo.us •  Rico •  Prototype
  • 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. 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. 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. Groovy & Grails: Desarrollo rápido de aplicaciones Arquitectura
  • 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. Groovy & Grails: Desarrollo rápido de aplicaciones Arquitectura •  Ejecución de un proyecto en Grails
  • 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. 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. 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

Editor's Notes

  1. 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.
  2. 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.
  3. 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)
  4. 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.*.
  5. 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
  6. 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.
  7. Estoque los programadores LAMPven normal, en Java no estan obvio y suele necesitarse mucho código para conseguir lo mismo
  8. De igual forma que antes, esto es obvio para los programadores LAMP, pero no tanto para desarrolladores del mundo Java.
  9. 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
  10. 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
  11. Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails
  12. 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
  13. 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.
  14. 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
  15. 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