Groovy&Grails: desarrollo rápido de aplicaciones

Embed Size (px)

DESCRIPTION

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

Text of Groovy&Grails: desarrollo rápido de aplicaciones

  • 1. Groovy&Grails: desarrollo rpido de aplicaciones

2. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Groovy&Grails? Combinacin perfecta para el desarrollo rpidode aplicaciones Groovy Lenguaje de programacin Grails Entorno completo de desarrollo(framework MVC, base de datos, tests,contenedor web) 3. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Groovy? Groovy en ingls significa genial Otro lenguaje de la plataforma Java Lenguaje de programacin gil y dinmico Caractersticas tpicas de lenguajes comoPython, Ruby o Smalltalk 4. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Groovy? Sintaxis tpica de Java Superclase de Java Evita la ceremonia de Java 5. Groovy & Grails: Desarrollo rpido de aplicaciones A quin va dirigido Groovy? A los programadores Java A los programadores de scripts A los programadores giles y extremos 6. Groovy & Grails: Desarrollo rpido de aplicaciones Comparando Java y Groovy Java & Groovy Groovy Mecanismo de paquetes Nuevas expresiones y Sentenciasoperadores Definicin de clases y mtodos Nuevas formas de declarar Estructuras de controlobjetos Operadores, asignaciones y Nuevas estructuras de control expresiones Nuevos tipos de datos con sus Manejo de excepciones operadores y expresiones Declaracin de literales Todo es un objeto Instanciacin de objetos y llmadas a mtodos 7. Groovy & Grails: Desarrollo rpido de aplicaciones Caractersticas de Groovy Brevedad del lenguaje Groovy evita la ceremona que acompaa a Java Aumenta la expresividad del lenguaje (se dice mscon menos) Importa automticamente varios paquetes 8. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Declaracin de clasesclass Libro { private String titulo Libro (String elTitulo){ titulo = elTitulo}String getTitulo(){ return titulo}} 9. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Scripts en Groovy Libro cgg = new Libro('Curso GroovyGrails') assert cgg.getTitulo() == 'Curso GroovyGrailsassert getTituloAlReves(cgg) == 'sliarGyvoorG osruC' String getTituloAlReves(libro) { titulo = libro.getTitulo() return titulo.reverse()} 10. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo 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 rpido de aplicaciones El cdigo de Groovy GroovyBeans /*Un Bean en Groovy*/class Libro{String titulo} 12. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo 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 rpido de aplicaciones El cdigo de Groovy Los nmeros son objetosdef x = 1def y = 2assert x + y == 3assert x.plus(y) == 3assert x instanceOf Integer 14. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Listas, mapas y rangos Groovy facilita el trabajo con este tipo de coleccionesde datos 15. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Listas, mapas y rangosdef sesiones = [ 'Introduccin a Groovy','El lenguaje Groovy','Aspectos avanzados en Groovy']assert sesiones[1] == 'El lenguaje Groovy'sesiones[3] = 'Libreras propias de Groovy 16. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Listas, mapas y rangosdef http = [ 100 : 'Continue,200 : 'OK,400 : 'Bad Request' ]assert http[200] == 'OK' 17. Groovy & Grails: Desarrollo rpido de aplicaciones El cdigo de Groovy Listas, mapas y rangosdef x = 1..10 assert x.contains(2) assert x.size() == 10 assert x.reverse() == 10..1 18. Groovy & Grails: Desarrollo rpido de aplicaciones Closures Bloques de cdigo annimo definido entre llaves def ayer = {Date dia -> dia - 1} ayer.call(new Date()) 19. Groovy & Grails: Desarrollo rpido de aplicaciones Closures Nos permiten ser ms giles programando ['Pedro','Lola','Juan'].each { it -> println(it) } 20. Groovy & Grails: Desarrollo rpido de aplicaciones Estructuras de control en Groovy Los tpicos 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 ifor(i in [1,2,3,4,5,6,7,8,9,10])println i 21. Groovy & Grails: Desarrollo rpido de aplicaciones Estructuras de control en Groovy O mediante closuresdef alumnos = ['Pedro','Miguel','Alejandro','Elena'] alumnos.each{nombre -> println nombre} 22. Groovy & Grails: Desarrollo rpido de aplicaciones Groovy para escribir DSLs Un DSL (Domain Specific Language) es unlenguaje de programacin especfico dedicado aresolver un problema particular DSLs tpicos: reglas financieras o de base dedatos 23. Groovy & Grails: Desarrollo rpido de aplicaciones Groovy para escribir DSLs Con un DSL podremos tener cosas como://Funciones para sumar cantidades de tiempo 5.dias + 4.semanas + 3.horas//Funciones tpicas de GORM def lista = Persona.ndByNombre("Manuel) 24. Groovy & Grails: Desarrollo rpido de aplicaciones Groovy en el entorno Java Groovy puede ser ejecutado en la JVM: Compilando con groovyc Sin compilar 25. Groovy & Grails: Desarrollo rpido de aplicaciones GDK: la librera Groovy GDK es una extensin a la librera JDK Facilita el acceso a base de datos yprocesamiento de XML Extiende las funcionalidades de Java 26. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Grails? Grails es un framework para el desarrollo deaplicacines web basado en el lenguaje deprogramacin Groovy, que a su vez se basa enla Plataforma Java Se basa en los paradigmas CoC (Convencinsobre Configuracin) y DRY (dont repeatyourself) 27. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Grails? Basado en el patrn Modelo Vista Controlador Modelo Clases de dominio Controladores Vista Pginas GSP (Groovy Server Pages) 28. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Grails? El programador se olvida de determinadosaspectos de configuracin Groovy acorta los tiempos de desarrollo Grails es un framework muy gil 29. Groovy & Grails: Desarrollo rpido de aplicaciones Qu es Grails? Grails no slo es un framework de desarrolloweb que sigue el patrn MVC, sino que es unaplataforma completa de desarrollo Contenedor/servidor web Gestor de base de datos Empaquetado de la aplicacin Realizacin de tests 30. Groovy & Grails: Desarrollo rpido de aplicaciones Caractersticas de Grails Tests Tests unitarios Tests de integracin Tests funcionales 31. Groovy & Grails: Desarrollo rpido de aplicaciones Caractersticas de Grails ScaffoldingGeneracin automtica de cdigo para lascuatro operaciones bsicas de cualquieraplicacin, que son la creacin, lectura, ediciny borrado 32. Groovy & Grails: Desarrollo rpido de aplicaciones Caractersticas de Grails Mapeo objeto-relacional GORM (Grails Object Relational Mapping) Uno a uno Uno a muchos Muchos a muchos 33. Groovy & Grails: Desarrollo rpido de aplicaciones Caractersticas de Grails Plugins Seguridad AJAX Realizacin de tests Bsqueda Informes 34. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Grails no sufre del sndrome NIH (Not InventedHere) e integra las mejores soluciones desoftware libre para conseguir un framework muyrobusto 35. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Groovy Lenguaje dinmico Potente y flexible Sintaxis sencilla Integracin con Java 36. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Framework Spring Framework ampliamente utilizado por losdesarrolladores Java Muchos aos de experiencia 37. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Hibernate Framework de persistencia objeto-relacional Es la base de GORM Mapea clases de dominio contra las tablas de unabase de datos 38. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto SiteMesh Renderizado HTML Patrn de diseo Decorator 39. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Frameworks AJAX Script.aculo.us Rico Prototype 40. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto Jetty Contenedor web No es el nico sobre el que funciona Grails 41. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto HSQLDB Gestor de base de datos Almacenamiento en memoria o en disco 42. Groovy & Grails: Desarrollo rpido de aplicaciones Software de cdigo abierto JUnit Framework para la realizacin de tests unitarios Muy extendido en Java 43. Groovy & Grails: Desarrollo rpido de aplicaciones Arquitectura 44. Groovy & Grails: Desarrollo rpido de aplicaciones Arquitectura Herramientas en lnea de comandos Facilita la escritura de cdigo Facilita la gestin de nuestros proyectos Basado en Gant, un sistema de automatizacin detareas basado en Apache Ant 45. Groovy & Grails: Desarrollo rpido de aplicaciones Arquitectura Ejecucin de un proyecto en Grails 46. Groovy & Grails: Desarrollo rpido 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 rpido de aplicaciones Enlaces de inters http://groovy.codehaus.org http://grails.org http://www.escueladegroovy.com http://www.jtech.ua.es/grails 48. Groovy & Grails: Desarrollo rpido de aplicaciones Contacto http://www.frangarcia.net fgarciarico@gmail.com http://www.twitter.com/frangarcia http://www.linkedin.com/in/frangarcia