Intro a Grails @ ITESCA
Upcoming SlideShare
Loading in...5
×
 

Intro a Grails @ ITESCA

on

  • 3,230 views

Introducción a Groovy en ITESCA, Ciudad Obregón, Sonora, México

Introducción a Groovy en ITESCA, Ciudad Obregón, Sonora, México

Statistics

Views

Total Views
3,230
Views on SlideShare
3,212
Embed Views
18

Actions

Likes
3
Downloads
77
Comments
0

4 Embeds 18

http://lanyrd.com 15
http://www.slideshare.net 1
http://webcache.googleusercontent.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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

    Intro a Grails @ ITESCA Intro a Grails @ ITESCA Presentation Transcript

    • Agilidad en el desarrollo empresarial (o de como hacer webapps sin tanto dolor)
    • Disculpa a ITESCA • Vi mal la hora del vuelo. • Lo perdí • Casi no llego, vengo corriendo del aeropuerto. • Pero ya estoy aquí :) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Agenda • Groovy • Grails • Arquitectura • Componentes • Como usar la plataforma • !!Código¡¡ • Recursos. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Objetivo • Conocer y aprender como simplificar el desarrollo web con Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Sobre el ponente • Domingo Suárez Torres • Ciencias de la Informática @ IPN-UPIICSA • Gerente de Desarrollo @ Bursatec • Asigna, Mercado de Derivados • CTO @ SynergyJ y de SeptimoBit Software • Apasionado por el desarrollo de software • Fundador de JavaUp.org, SpringHispano.org, Grails.org.mx © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Trasfondo • Desarrollador Java desde 1999 • 7 años desarrollando aplicaciones JEE • Experiencia en sectores:Ventas, Construcción, Salud, Gobierno, Financiero. • Javero de hueso colorado. • Commiter en Codehaus • Desarrollador de plugins de Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Java Plataforma políglota • Java • Groovy • Scala • Erlang • JRuby • Jython • JavaFX © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Que es Groovy? • Groovy es un lenguaje ágil y dinámico para la Máquina Virtual de Java • Basado en los conceptos base del lenguage Java, incluye características inspiradas en otros lenguages como Python, Ruby y Smalltalk. • Habilita características de programación modernas con una curva de aprendizaje prácticamente plana para desarrolladores Java • Soporta Lenguajes de Dominio Específico y otras características de sintaxis corta © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Que es Groovy? • Simplifica el ciclo de pruebas dado que soporta pruebas unitarias y mocking desde el inicio. • Se integra sin problemas con cualquier objeto y/o librería Java existentes • Compila directamente a código byte (igual que Java) puede ser usado virtualmente en cualquier lugar donde Java puede serlo también © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • HolaMundo en Java public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • HolaMundo en Groovy public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Manera Groovy ;) class HelloWorld { String name def greet() { quot;Hello $namequot; } } def helloWorld = new HelloWorld(name:quot;Groovyquot;) println helloWorld.greet() © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Groovy casi Java • Java es Groovy, Groovy es Java • Groovy ofrece una curva de aprendizaje sencilla para desarrolladores Java. Puedes empezar con sintaxis Java y moverte poco a poco a la sintaxis Groovy • 98% de código Java es código Groovy, virtualmente podrías renombrar un archivo *.java a .groovy y compilaría © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Groovy y Java 5 • Groovy soporta anotaciones (JSR 175) iguales a las de Java, es más, es el segundo lenguaje en la JVM que las soporta. ¿JavaFX? • hasta el momento no es posible definir anotaciones con Groovy • Groovy soporta Enums también • Por último también tiene habilitado el soporte de tipos genéricos, iguales a los de Java. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Closures • Closures pueden ser interpretados como bloques de código reusable, probablemente las hayas visto en otros lenguajes como JavaScript o Ruby • Closures substituyen a las clases internas en la mayoría de los casos • Groovy permite “forzar el tipo” de una Closure a una interface de un solo método (proxy) • Una closure tendrá un parámetro por omisión llamado “it” si es que no se definen parámetros para la misma © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Ejemplos de closures def greet = { name -> println “Hello $name” } greet( “Groovy” )‫‏‬ // prints Hello Groovy def greet = { println “Hello $it” } greet( “Groovy” )‫‏‬ // prints Hello Groovy def iCanHaveTypedParametersToo = { int x, int y -> println “coordinates are ($x,$y)” } def myActionListener = { event -> // do something cool with event } as ActionListener © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Azúcar sintáctica: Toma 1 ¿No es adorable el Api de Collections? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Azúcar sintáctica: Toma 2 © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Azúcar sintáctica: Toma 3 © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Detalles • Groovy es leeentooo.... No tanto como les gustaría a los alarmistas. • Es cuestión de tiempo • Si necesitas velocidad, puedes recurrir a Java. • A veces no importa tanto © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Que es Grails? • Mas que un framework, es una plataforma para desarrollo de aplicaciones web © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Plataforma Grails • Integra componentes que van desde el sistema de construcción hasta la capa de acceso a base de datos. • El desarrollador programa en Groovy. • Basado en herramientas existentes y poderosas como: • Spring, Hibernate, Quartz, Sitemesh, etc. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Plataforma Grails • Java 2 Enterprise Edition (J2EE, ahora JEE), es considerado muy complicado, más de lo necesario. • Spring y Hibernate han sido proyectos nacidos como Opensource que han mejorado la manera de desarrollar en Java. • Grails representa el siguiente nivel de abstracción para JEE. • Grails simplifica dramáticamente el uso de Spring y Hibernate. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Spring como base • Sus principales características • Sistema de extensiones basada en plugins • Entorno de configuración para ejecución • Todo lo anterior, construido sobre Spring. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Bases solidas • Spring • Hibernate • Groovy • Quartz • Sitemesh • Jetty • Apache Ant • Plataforma Java © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Arquitectura de Grails
    • ¿Por que Groovy & Grails? • Todo el poder de frameworks de otras plataformas como RubyOnRails, Django • Basado en Tecnología Java, en desarrollo empresarial no hay alternativa. • Reuso de herramientas y tecnologías existentes • Caches Distribuidos • Herramientas para depuración,IDEs © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Por que Groovy & Grails? • ¿Porque no? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Como iniciar? • Instalar un JDK para tu sistema operativo • Visitar http://grails.org y descargar la ultima versión estable. Se distribuye en Zip y TarGZ • Descomprimir el archivo • Establecer la variable de ambiente GRAILS_HOME y agregar a PATH el directorio bin de $GRAILS_HOME • Mayor detalle en: http://grails.org/Installation © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Como desarrollo una aplicación? • Crear una aplicación y ejecutarla. • Analizar la estructura de directorios © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • !!No te creo¡¡ © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • IDEs y otras herramientas • Funciona muy bien con Eclipse • Mejor con IntelliJ IDEA • Plugin para NetBeans • Para minimalistas con Textmate • Ant • Maven © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Orden en Grails • El principio de “Convención sobre configuración” • No significa que no exista la configuración • No confundir por “Convención en lugar de configuración” © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Estructura de proyecto © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Estructura Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Seguimos con lo básico El Modelo de dominio © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • El modelo • Representa una parte muy importante del problema que intentamos resolver. • En Grails, el modelo generalmente es “persistente”, es decir se almacena su estado. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • El modelo • Para la persistencia se usa Hibernate. • Hibernate es un Mapeador Objeto- Relacional (ORM) • http://www.hibernate.org © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Como creo un modelo? > grails create-domain-class Clase © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • • Crear una clase de dominio llamada Conferencista y otra Conferencia • Hacer el CRUD de esas clases con scaffolding dinámico. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Scaffolding: No es bala de plata • Dos tipo de andamiaje • Dinámico (El de la demo) • Estático (Necesario generar artefactos, es posible modificarlos al gusto) • Es una ayuda, no es la principal fortaleza de Grails. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Consultas • ¿Se acuerdan de los DAOs? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Métodos dinámicos © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Más dinámicos... © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • GORM © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Ecosistema Grails • La comunidad esta creciendo mucho. • Gracias a la arquitectura de plugins de Grails, se puede extender la funcionalidad. • Existen mas de 50 plugins oficiales. • Seguridad • Interfases de usuario • WebServices © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Plugins • Vista • Flex, con Blaze DataServices • YahooUI, ExtJS, GWT, • Spring WebFlow • WebServices (XFire, Axis, Metro) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Despliegue • Grails genera archivos WAR. • Se puedes desplegar en diversos servidores como: • Weblogic • Websphere • Tomcat • Jetty • SpringSource Application Platform © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • ¿Quien lo usa? • LinkedIn • SAP • Tropicana • Sky • Más en: http://www.grails.org/Success+Stories © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Consejos • No lo adoptes si no tienes experiencia en Hibernate y Spring • A menos que no tengas deadlines... © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • SpringHispano.org
    • Grails.org.mx
    • Muestrame el código © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Proyectos • Coetus • http://code.google.com/p/coetus/ • Geedback • http://code.google.com/p/geedback/ © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • En la mira • JBoss Seam • Basado en estándares JEE • JSF y JPA • Marcando la pauta de nuevas especificaciones como WebBeans • Para los amantes de anotaciones :) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Agradecimientos • A mi familia, que me dejo venir... • ITESCA © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Agradecimientos • Andres Almiray, por las láminas de introducción a Groovy © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Resumen • Grails no es solo un framework, es una plataforma de desarrollo web. • Grails es la próxima generación de abstracción de JEE basada en Spring y Hibernate. • Groovy y Grails se integran sin problemas al código Java existente y a toda la plataforma Java. • Grails == Simplificación de la plataforma JEE en web. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Preguntas © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
    • Recursos • http://groovy.codehaus.org • http://grails.org • http://www.springhispano.org • http://groovy.org.es • http://grails.org.mx • http://www.javahispano.org • Podcast en SpringHispano.org y Grails.org.mx • http://www.domingosuarez.com • http://www.domix.org © 2008 Domingo Suarez; disponible bajo CC-SA 2.5