Groovy&Grails: desarrollo rápido de aplicaciones
Upcoming SlideShare
Loading in...5
×
 

Groovy&Grails: desarrollo rápido de aplicaciones

on

  • 6,594 views

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

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

Statistics

Views

Total Views
6,594
Views on SlideShare
6,109
Embed Views
485

Actions

Likes
0
Downloads
161
Comments
0

8 Embeds 485

http://www.frangarcia.net 393
http://www.adwa.es 49
http://www.slideshare.net 31
http://elements.com.co 6
http://frangarcia.net 2
http://translate.googleusercontent.com 2
http://webcache.googleusercontent.com 1
http://www.groovyblogs.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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

Groovy&Grails: desarrollo rápido de aplicaciones Groovy&Grails: desarrollo rápido de aplicaciones Presentation Transcript

  • 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