Introduccion a grails en Campusparty

1,597 views
1,500 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,597
On SlideShare
0
From Embeds
0
Number of Embeds
515
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduccion a grails en Campusparty

  1. 1. Introducción a Grails<br />José Juan R. Zuñiga (@neodevelop)<br />
  2. 2. Agenda<br />Lenguaje de Programación Groovy<br />Plataforma Grails<br />
  3. 3. Groovy<br />
  4. 4. HolaMundo en Java<br />publicclassHolaMundo {<br />privateStringnombre;<br />publicStringgetNombre() {<br />returnnombre;<br /> }<br />publicvoidsetNombre(String nombre) {<br />this.nombre = nombre;<br /> }<br />publicString saluda() {<br />return&quot;Hola &quot; + this.nombre + &quot; !!!&quot;;<br /> }<br />publicstaticvoidmain(String[] args) {<br />HolaMundo objeto = newHolaMundo();<br />objeto.setNombre(&quot;@SG09Conf&quot;);<br />System.out.println(objeto.saluda());<br /> }<br />}<br />
  5. 5. HolaMundo en Groovy<br />publicclassHolaMundo {<br />privateStringnombre;<br />publicStringgetNombre() {<br />return nombre;<br /> }<br />publicvoidsetNombre(String nombre) {<br />this.nombre = nombre;<br /> }<br />publicString saluda() {<br />return&quot;Hola &quot; + this.nombre + &quot; !!!&quot;;<br /> }<br />publicstaticvoidmain(String[] args) {<br />HolaMundo objeto = newHolaMundo();<br />objeto.setNombre(&quot;@SG09Conf&quot;);<br />System.out.println(objeto.saluda());<br /> }<br />}<br />
  6. 6. Mejor a la manera Groovy<br />classHolaMundo {<br />Stringnombre<br />def saluda() { &quot;Hola ${this.nombre} !!!&quot; }<br />}<br />def objeto = newHolaMundo(nombre:&quot;@SGConf&quot;)<br />println(objeto.saluda())<br />
  7. 7. ¿Cómo llegamos a esto…?<br />Tener el JDK instalado<br />Establecer la variable JAVA_HOME y agregarla al PATH en el subdirectorio /bin<br />Descargamos la distribución de Groovy en http://groovy.codehaus.org/<br />Creamos una variable de entorno GROOVY_HOME apuntando al directorio donde se descomprimió la distribución<br />Adicionalmente, incluir en el PATH el directorio /bin de la variable de entorno GROOVY_HOME, es decir: %GROOVY_HOME%/bin<br />Let’s rock thecode!!!<br />
  8. 8. + Groovy en una mirada<br />Totalmente Orientado a objetos<br />Perfecta integración con Java<br />Closures<br />Convención de JavaBeans<br />Esencia vs. Ceremonia<br />Aritmética con BigDecimal por default para la operación de punto flotante<br />API’s amigables y prácticas<br />XML, JDBC, JMX, Swing<br />DSL(DomainSpecificLanguage)<br />Builders<br />Sobrecarga de operadores<br />GDK<br />
  9. 9. Azúcar sintáctica + GDK<br />Listas<br />defnumeros = [1,2,3,4,5]<br />Mapas<br />def mapa = [DF:&apos;Distrito Federal&apos;,MTY:&apos;Monterrey&apos;]<br />Rangos<br />def rangos = 199..299<br />Asignación Múltiple<br />def (a,b) = [10,20]<br />Return Opcional<br />defmetodo(bool) { if(bool) 1else0 }<br />
  10. 10. Groovy en profundidad<br />Meta-programación<br />La habilidad de un lenguaje para modificarse a sí mismo<br />Transformaciones AST<br />@Singleton<br />@Inmutable, @Lazy, @Delegate<br />@Newify<br />@Category & @Mixin<br />@PackageScope<br />@Bindable & @Vetoable<br />@Grab<br />
  11. 11. Ahora hablemos de…<br />
  12. 12. ¿Qué es Grails?<br />Un framework MVC full-stack<br />
  13. 13. ¿Qué es Grails?<br />Totalmente orientado a objetos<br />Dinámico<br />Sintaxis familiar<br />Perfecta integración con Java<br />
  14. 14. ¿Qué es Grails?<br />Convención sobre configuración<br />DRY (Don’trepeatyourself)<br />
  15. 15. Stack de tecnologías de Grails<br />
  16. 16. ¿qué me provee?<br />MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffoldingREST LayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring <br />flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui<br />
  17. 17. Aun hay algo más…<br />
  18. 18. Plugins<br />acegiactivemqapp-engine axis2 background-thread barcode4j calendar ckeditorcommentabledbmapperdbunitdwrfacebook-connect file-uploaderflexgeoipgoogle-analyticsgoogle-chartgoogle-data gwt j2d javascriptjmsjmxjqueryldaplogging mail paypalquartzrecaptcharestrichuisearchableterracottatwittervaadinwavexfirexmlrpcyui<br />¡¡¡323 Plugins!!!<br />
  19. 19. Let’scodeagain!!!<br />
  20. 20. Esperen…<br />
  21. 21. Offtopic: MundoJava<br />Java Champs: @magoghm y @edivargas<br />Estan promoviendo un nuevo proyecto Java estilo: World ofWarcraft<br />Te están buscando a ti:<br />programadores<br />animadores<br />músicos<br />modeladores<br />texturizadores<br />diseñadores<br />Es un proyecto Open Source<br />Contacto:<br />mago@mundojava.com<br />Con el Subject: Mundo Java<br />
  22. 22. Hay un regalo para los primeros 4 que…<br />
  23. 23. Agradecimiento<br />#cpartymx<br />Area de innovación<br />@springhispano<br />@grailsmx<br />Domingo Suarez Torres<br />Eli<br />
  24. 24. ¿Preguntas?<br />…o comentarios…<br />http://springhispano.org<br />http://grails.org.mx<br />@neodevelop<br />

×