plana Mismo modelo de programación - OO Acceso al API de Java - JDK Librerías propias - GDK Dinámico, expresivo, … Closures, sobrecarga de operadores, manejo de cadenas, … Coding by Convention @fatimacasau
a una variable, se ejecuta después Puede asignarse a variables Variables implícitas ◦ it para closures con un solo argumento Free variables ◦ Referencia a variables de fuera de la closure ejemplos @fatimacasau
Números ◦ Colecciones ◦ Cadenas ◦ Mapas ◦ … Operadores de Groovy Métodos de Java ◦ Lista de operadores y métodos Implementar los métodos anteriores en nuestros objetos (Groovy/Java) permite el uso de los operadores @fatimacasau
.each & .eachWithIndex if/else ◦ Operador ternario def x = y>0 ? 1 : -1 def x = y ?: 0 swith/case ◦ Cualquier tipo de datos en el “switch” y diferentes tipos de datos en los “case” @fatimacasau
tradición zen, un problema que el maestro plantea al novicio para comprobar sus progresos. http://es.wikipedia.org/wiki/Kōan La mejor forma de aprender y comprender el lenguaje Utilizan test unitarios Enseñan el lenguaje Groovy y su API Procedimiento: ◦ Ejecutar los Koans que fallan intencionadamente ◦ Sustituir __ para hacerlos funcionar koans @fatimacasau
Construido sobre un conjunto de frameworks consolidados Apoyado por una extensa librería de plugins Soluciona todas las necesidades en el desarrollo de aplicaciones web Facilita el desarrollo de dichas aplicaciones Utiliza GROOVY como lenguage Software Libre - Bajo la licencia Apache 2.0 Software License @fatimacasau
Configuration) ◦ Nombres y localización de ficheros indican lo que son ◦ Paradigma Coding by Convention de GROOVY DRY (Don’t Repeat Yourself) ◦ Reutilización de código Inyección de dependencias @fatimacasau
+ menos errores = productividad Fly reloading ◦ Recarga en caliente Capa de abstracción ◦ Facilita el uso de los frameworks sobre los que está construido Línea de comandos ◦ run-app, war, install-plugin… Eliminación de XML’s gracias a CoC Extensa librería de plugins @fatimacasau
◦ Trabajar por línea de comandos definir GRAILS_HOME ◦ Trabajar con Springsource Tool Suite Download Springsource Tool Suite ◦ Extensiones: Grails support & Groovy eclipse plugin Crear una aplicación ◦ command line: grails> create-app myApp ◦ o, en STS New Grails project @fatimacasau
o si es un entorno custom -Dgrails.env=myEnv Comandos más usados: ◦ run-app ◦ war ◦ clean ◦ install-plugin ◦ test-app ◦ create-domain-class ◦ create-controller ◦ ceate-service ◦ generate-all @fatimacasau
Acceso: grailsApplication.config.my.property.text Dependencias de librerías y plugins ◦ grails-app/conf/BuildConfig.groovy Base de datos ◦ grails-app/conf/Datasource.groovy Acciones al principio y al final ◦ grails-app/conf/Bootstrap.groovy Recursos: layout, javascript, css… ◦ Plugin Resources integrado ◦ MyAppResources.groovy ◦ Tag r:require en gsp’s @fatimacasau
vienen del formulario ◦ Redirect, chain, … Otros actions en el mismo controlador o de otros ◦ Renders views templates json … Interacción con la capa de servicios Objeto flash para enviar messages Filtros que interceptan controllers, actions, views para realizar comprobaciones, acciones, restricciones… @fatimacasau
8080: grails run-app Especificar un puerto: grails -Dserver.port=8090 run-app ◦ Generar un war: Entorno de producción por defecto: grails war Especificar un entorno: grails -Dgrails.env=myEnv @fatimacasau
◦ http://grails.org/Mailing+lists Nabble forums ◦ http://grails.1312388.n4.nabble.com/Grails-user-f1312389.html Grails Blog ◦ http://grails.org/blog Issue Tracker ◦ http://jira.grails.org/browse/GRAILS Grupo de Google – Grails en Castellano ◦ http://groups.google.es/group/grailsencastellano Escuela de groovy Meetup Madrid GUG ◦ http://www.meetup.com/madrid-gug/ @fatimacasau