View
1.421
Download
1
Category
Preview:
DESCRIPTION
La presentacion de Introduccion a Grails realizada en el Campus Party México por el equipo de grails.org.mx
Citation preview
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
Recommended