Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de ella tendrás ganas de profundizar y utilizarlo en tu día a día.
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de ella tendrás ganas de profundizar y utilizarlo en tu día a día.
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
This is the presentation we gave at Spring 2GX Madrid. It shows how Grails helped us to improve our productivity and why Grails is not that bounded to Groovy and how it can be an outstanding alternative if you are a 100% Java company.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
Presentation in Spanish given at DeSymfony Day 2014 in Barcelona about different approaches of testing with my teammate Jordi Llonch.
We created a GitHub repository comparing the main libraries available in PHP: https://github.com/Akamon/to-mock-or-not-to-mock
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
This is the presentation we gave at Spring 2GX Madrid. It shows how Grails helped us to improve our productivity and why Grails is not that bounded to Groovy and how it can be an outstanding alternative if you are a 100% Java company.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
Presentation in Spanish given at DeSymfony Day 2014 in Barcelona about different approaches of testing with my teammate Jordi Llonch.
We created a GitHub repository comparing the main libraries available in PHP: https://github.com/Akamon/to-mock-or-not-to-mock
Hacer un sistema, sin probar, es lanzarlo al precipicio.
Las pruebas son fundamentales, pero claro, probar sin un método es lo mismo que no probar, es probar sólo una parte del sistema y dejar lo demás al azar.
TDD es una técnica de eXtreme Programming con la que las pruebas y el código se escriben a la vez. No antes cuando el sistema sólo es una abstracción. No después cuando en realidad ya da flojera escribirlas. A la vez que se escribe el código, van las pruebas.
TDD es un método ágil y eficaz de lograr un sistema Probado, y Funcional.
Groovy&Grails: desarrollo rápido de aplicacionesFran García
Presentación realizada al CEFIRE de Valencia en las jornadas para la Actualización del profesorado de la familia profesional Informática y Comunicaciones
Sesión 6 del curso Metodologías Ágiles de Desarrollo de Software de la Universidad de Alicante (http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14)
Introducción a la organización de contenidos en sitios web 2.0.
Curso de Verano "La web 2.0: retos y tecnologías para la internet de nueva generación". Universidad de Alicante. Julio 2008.
Sesión 6 del curso Metodologías Ágiles de Desarrollo de Software de la Universidad de Alicante (http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14)
Sesión 2 del curso "Metodologías Ágiles de Desarrollo de Software" de la Universidad de Alicante (http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14)
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
Cuarta Edición del Curso Online de Especialización en Seguridad
Informática para la Ciberdefensa
Del 4 de mayo al 4 de junio de 2015
Orientado a:
- Responsables de seguridad.
- Cuerpos y fuerzas de seguridad del Estado.
- Agencias militares.
- Ingenieros de sistemas o similar.
- Estudiantes de tecnologías de la información
Configurar y utilizar Latch en MagentoChema Alonso
Tutorial realizado por Joc sobre cómo instalar y configurar Latch en el framework Magento. El plugin puede descargarse desde https://github.com/jochhop/magento-latch y tienes un vídeo descriptivo de su uso en http://www.elladodelmal.com/2015/10/configurar-y-utilizar-latch-en-magento.html
Talk delivered by Chema Alonso at RootedCON Satellite (Saturday 12th of September 2015) about how to do hacking & pentesting using dorks over Tacyt, a Big Data of Android Apps
Esta ponencia tiene como objetivo mostrar como conjuntar y aprovechar las ventajas de trabajar con Groovy & Grails, llevar el control del versionado con Git y simular la puesta en producción de la aplicación en GoogleAppEngine.
Groovy nos entrega una nueva generación de lenguajes scripting que permite el desarrollo de aplicaciones en menos tiempo y de manera mucho mas legibles. Además la con la metaprogramacion de Groovy , permite extender las funcionalidades de la API de Java en Runtime.
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla.
Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de la charla tendrás ganas de profundizar y utilizarlo en tu día a día.
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de la charla tendrás ganas de profundizar y utilizarlo en tu día a día.
Los desarrolladores Java deben enfrentarse todos los días a muchos problemas, tanto técnicos como de otras índoles. En este webminar dirigido principalmente al personal técnico, como desarrolladores e ingenieros de pruebas, veremos como el lenguaje Groovy puede ser un excelente complemento para las tareas cotidianas, así como para aquellas tareas que requieran de un gran esfuerzo con las herramientas tradicionales y el lenguaje Java que todos ya conocemos.
El lenguaje Groovy plantea una sintaxis simple que permite al desarrollador escribir menor cantidad de código y mas sencillo de entender. Groovy ademas de su facilidad para escribir código, nos provee de características como la metaprogramación que permite añadir funcionalidad a clases existentes del SDK de Java, esto se conoce como Groovy Development Kit (GDK), usando el GDK veremos como usar las librerías estándar de Java aun mas fácil.
Ademas de ello, en la comunidad se han desarrollado herramientas que permiten aprovechar todas las características de Groovy, en este webminar veremos como un desarrollador Java puede aprovecharlas sin necesidad de usar Groovy en entornos productivos si es que no esta listo
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
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
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
Notas del editor
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