Introduccion a grails en Campusparty

24
Campus Party México Introducción a Grails José Juan R. Zuñiga (@neodevelop)

description

La presentacion de Introduccion a Grails realizada en el Campus Party México por el equipo de grails.org.mx

Transcript of Introduccion a grails en Campusparty

Page 1: Introduccion a grails en Campusparty

Campus Party

México

Introducción a Grails

José Juan R. Zuñiga (@neodevelop)

Page 2: Introduccion a grails en Campusparty

Agenda

• Lenguaje de Programación Groovy

• Plataforma Grails

Page 3: Introduccion a grails en Campusparty

Groovy

Page 4: Introduccion a grails en Campusparty

HolaMundo en Java

publicclassHolaMundo {

privateStringnombre;

publicStringgetNombre() {

returnnombre;

}

publicvoidsetNombre(String nombre) {

this.nombre = nombre;

}

publicString saluda() {

return"Hola " + this.nombre + " !!!";

}

publicstaticvoidmain(String[] args) {

HolaMundo objeto = newHolaMundo();

objeto.setNombre("@SG09Conf");

System.out.println(objeto.saluda());

}

}

Page 5: Introduccion a grails en Campusparty

HolaMundo en Groovy

publicclassHolaMundo {

privateStringnombre;

publicStringgetNombre() {

return nombre;

}

publicvoidsetNombre(String nombre) {

this.nombre = nombre;

}

publicString saluda() {

return"Hola " + this.nombre + " !!!";

}

publicstaticvoidmain(String[] args) {

HolaMundo objeto = newHolaMundo();

objeto.setNombre("@SG09Conf");

System.out.println(objeto.saluda());

}

}

Page 6: Introduccion a grails en Campusparty

Mejor a la manera Groovy

classHolaMundo {

Stringnombre

def saluda() { "Hola ${this.nombre} !!!" }

}

def objeto = newHolaMundo(nombre:"@SGConf")println(objeto.saluda())

Page 7: Introduccion a grails en Campusparty

¿Cómo llegamos a esto…?

• Tener el JDK instalado

• Establecer la variable JAVA_HOME y agregarla al PATH en el subdirectorio /bin

• Descargamos la distribución de Groovy en http://groovy.codehaus.org/

• Creamos una variable de entorno GROOVY_HOMEapuntando al directorio donde se descomprimió la distribución

• Adicionalmente, incluir en el PATH el directorio /bin de la variable de entorno GROOVY_HOME, es decir: %GROOVY_HOME%/bin

• Let’s rock thecode!!!

Page 8: Introduccion a grails en Campusparty

+ Groovy en una mirada• Totalmente Orientado a objetos

• Perfecta integración con Java

• Closures

• Convención de JavaBeans

• Esencia vs. Ceremonia

• Aritmética con BigDecimal por default para la operación de punto flotante

• API’s amigables y prácticas

• XML, JDBC, JMX, Swing

• DSL(DomainSpecificLanguage)

• Builders

• Sobrecarga de operadores

• GDK

Page 9: Introduccion a grails en Campusparty

Azúcar sintáctica + GDK

• Listas– defnumeros = [1,2,3,4,5]

• Mapas– def mapa = [DF:'Distrito Federal',MTY:'Monterrey']

• Rangos– def rangos = 199..299

• Asignación Múltiple– def (a,b) = [10,20]

• Return Opcional– defmetodo(bool) { if(bool) 1else0 }

Page 10: Introduccion a grails en Campusparty

Groovy en profundidad

• Meta-programación– La habilidad de un lenguaje para modificarse a sí mismo

• Transformaciones AST– @Singleton

– @Inmutable, @Lazy, @Delegate

– @Newify

– @Category&@Mixin

– @PackageScope

– @Bindable&@Vetoable

– @Grab

Page 11: Introduccion a grails en Campusparty

Ahora hablemos de…

Page 12: Introduccion a grails en Campusparty

¿Qué es Grails?

• Un framework MVC full-stack

Page 13: Introduccion a grails en Campusparty

¿Qué es Grails?

• Totalmente orientado a objetos

• Dinámico

• Sintaxis familiar

• Perfecta integración con Java

Page 14: Introduccion a grails en Campusparty

¿Qué es Grails?

• Convención sobre configuración

• DRY (Don’trepeatyourself)

Page 15: Introduccion a grails en Campusparty

Stack de tecnologías de Grails

Page 16: Introduccion a grails en Campusparty

¿qué me provee?

MVC zero-configurationDependency_Injectiongsptransacciones JNDI

groovyInternacionalización

Web_FlowTag_librariesCachinghibernatescaffoldingREST

LayoutsAJAX JettyUnit

testingIntegrationtestinggrailsplugins

quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring

flexfreemarkerjava geoipgwtivyjpajqueryldap mail

openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui

Page 17: Introduccion a grails en Campusparty

Campus Party

México

Aun hay algo más…

Page 18: Introduccion a grails en Campusparty

Plugins

acegiactivemqapp-engine axis2 background-threadbarcode4j calendar

ckeditorcommentabledbmapperdbunitdwrfacebook-connect file-uploaderflexgeoipgoogle-

analyticsgoogle-chartgoogle-data gwt j2d javascriptjmsjmxjqueryldaplogging mail

paypalquartzrecaptcharestrichuisearchableterracottatwittervaadinwavexfirexmlrpcyui

¡¡¡323 Plugins!!!

Page 19: Introduccion a grails en Campusparty

Let’scodeagain!!!

Page 20: Introduccion a grails en Campusparty

Campus Party

México

Esperen…

Page 21: Introduccion a grails en Campusparty

Offtopic: MundoJava

• Java Champs: @magoghm y @edivargas– Estan promoviendo un nuevo proyecto Java estilo: World ofWarcraft

• Te están buscando a ti:– programadores

– animadores

– músicos

– modeladores

– texturizadores

– diseñadores

• Es un proyecto Open Source

• Contacto:– [email protected]

– Con el Subject: Mundo Java

Page 22: Introduccion a grails en Campusparty

Campus Party

México

Hay un regalo para los primeros 4 que…

Page 23: Introduccion a grails en Campusparty

Agradecimiento

• #cpartymx– Area de innovación

• @springhispano

• @grailsmx

• Domingo Suarez Torres

• Eli

Page 24: Introduccion a grails en Campusparty

Campus Party

México

¿Preguntas?

…o comentarios…

http://springhispano.org

http://grails.org.mx

@neodevelop