introduccion a grails en campusparty

Post on 05-Jul-2015

1.421 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Campus Party

México

Introducción a Grails

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

Agenda

• Lenguaje de Programación Groovy

• Plataforma Grails

Groovy

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());

}

}

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());

}

}

Mejor a la manera Groovy

classHolaMundo {

Stringnombre

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

}

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

¿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!!!

+ 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

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 }

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

Ahora hablemos de…

¿Qué es Grails?

• Un framework MVC full-stack

¿Qué es Grails?

• Totalmente orientado a objetos

• Dinámico

• Sintaxis familiar

• Perfecta integración con Java

¿Qué es Grails?

• Convención sobre configuración

• DRY (Don’trepeatyourself)

Stack de tecnologías de Grails

¿qué me provee?

MVC zero-configurationDependency_Injectiongsptransacciones JNDI

groovyInternacionalización

Web_FlowTag_librariesCachinghibernatescaffoldingREST

LayoutsAJAX JettyUnit

testingIntegrationtestinggrailsplugins

quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring

flexfreemarkerjava geoipgwtivyjpajqueryldap mail

openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui

Campus Party

México

Aun hay algo más…

Plugins

acegiactivemqapp-engine axis2 background-threadbarcode4j calendar

ckeditorcommentabledbmapperdbunitdwrfacebook-connect file-uploaderflexgeoipgoogle-

analyticsgoogle-chartgoogle-data gwt j2d javascriptjmsjmxjqueryldaplogging mail

paypalquartzrecaptcharestrichuisearchableterracottatwittervaadinwavexfirexmlrpcyui

¡¡¡323 Plugins!!!

Let’scodeagain!!!

Campus Party

México

Esperen…

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:– mago@mundojava.com

– Con el Subject: Mundo Java

Campus Party

México

Hay un regalo para los primeros 4 que…

Agradecimiento

• #cpartymx– Area de innovación

• @springhispano

• @grailsmx

• Domingo Suarez Torres

• Eli

Campus Party

México

¿Preguntas?

…o comentarios…

http://springhispano.org

http://grails.org.mx

@neodevelop

top related