Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)<br />José Juan Reyes Zuñiga<br />CIO<br />SynergyJ<br />
2<br />Objetivo<br />Demostrarlasventajascompetitivas al desarrollarcon Groovy & Grails, llevar el control del versionado ...
Agenda<br />Groovy<br />Grails<br />Git<br />Google AppEngine<br />3<br />
Groovy…¿Qué es…?<br />Es un lenguaje dinámico para la JVM<br />Construido con la fuerza de Java pero incluyendo caracterís...
HolaMundo en Java<br />publicclassHolaMundo {<br />privateStringnombre;<br />publicStringgetNombre() {<br />returnnombre;<...
HolaMundo en Groovy<br />publicclassHolaMundo {<br />privateStringnombre;<br />publicStringgetNombre() {<br />return nombr...
Mejor a la manera Groovy<br />classHolaMundo {<br />Stringnombre<br />def saluda() { &quot;Hola  ${this.nombre} !!!&quot; ...
¿Cómo llegamos a esto…?<br />Tener el JDK instalado<br />Establecer la variable JAVA_HOME y agregarla al PATH en el subdir...
+ Groovy en una mirada<br />Totalmente Orientado a objetos<br />Perfecta integración con Java<br />Closures<br />Convenció...
Azúcar sintáctica + GDK<br />Listas<br />defnumeros = [1,2,3,4,5]<br />Mapas<br />def mapa = [DF:&apos;Distrito Federal&ap...
Groovy en profundidad<br />Meta-programación<br />La habilidad de un lenguaje para modificarse a sí mismo<br />Transformac...
Ahora hablemos de …<br />
¿Que es Grails?<br />Una plataforma para desarrollo ágil en Web<br />Un framework MVC full-stack<br />Un proyecto Open Sou...
Stack de tecnologías<br />
¿qué me provee?<br />MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTa...
Let’scodeagain!!!<br />
Más Grails…<br />Mappings<br />Internacionalización<br />Ajax<br />WebFlow<br />GORM<br />Servicios<br />Plugins<br />Segu...
La vida y los proyectos…<br />“…así la vida como los proyectos de software son aburridos si se cuentan y se desarrollan de...
Git– Control de versiones<br />Git es:<br />“Un sistema de control de versiones distribuido libre y open source, diseñado ...
¿Distribuido?<br />Colaboración<br />Cambios sin perturbar a los demás<br />Las ramas(branches) que afectan al repositorio...
Aaahhh Distribuido….<br />
Diferencias y ventajas con CVCS<br />No hay copias de referencia, solo copias de trabajo locales<br />Las operaciones más ...
Formas de trabajo con Git & DCVS<br />Alone<br />En pares<br />Centralizado<br />Descentralizado<br />
Instalación de Git<br />En función del Sistema Operativo:<br />Basado en RedHat<br />RPM<br />Basado en Debian<br />Debs<b...
Continuemos entonces…<br />
Puesta en producción…<br />
Infraestructura<br />
Una opción…<br />
Google AppEngine<br />Solución de CloudComputing de Google<br />Correr aplicaciones en la infraestructura escalable de Goo...
Entorno GAE<br />Corre en Java 6(con algunas limitaciones)<br />El request será terminado si no se completa en 30 segundos...
Escalabilidad en GAE<br />30 requests dinámicos simultáneos<br />El tiempo de procesamiento del lado servidor es de 75ms<b...
Servicios en GAE<br />URL Fetch<br />Mail<br />Memcache<br />Manipulación de Imágenes<br />Manejo de usuarios<br />Consola...
Almacenamiento en GAE<br />Datastore<br />Almacenamiento de datos distribuido y transaccional<br />Filtrado y ordenamiento...
Persistencia en GAE<br />Toda la persistencia es definida por clases @not@d@s<br />JDO<br />JPA<br />Todo es almacenado en...
Desarrollo en GAE<br />Cuenta con un SDK descargable<br />Incluye un webserver<br />Emula los servicios<br />Incluye una h...
Plugin de GAE para Grails<br />Crear una appGrails que coincida con el nombre de nuestra app GAE<br />Desinstalar el plugi...
GAE es una opción<br />Existen también:<br />Amazon EC2<br />SpringSourceCloudFoundry<br />Entre otros…<br />
All in one-place<br />
em@il: jjuan.reyes@synergyj.com<br />facebook, flickr, digg, twitter, delicious: neodevelop<br />Comunidad: http://grails....
Upcoming SlideShare
Loading in …5
×

Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)

1,922 views

Published on

Esta ponencia tiene como objetivo mostrar como conjuntar y aprovechar las ventajas de trabajar con Groovy & Grails, llevar el control del versionado con Git y simular la puesta en producción de la aplicación en GoogleAppEngine.

Published in: Technology, Education
  • If you are looking for customer-oriented academic and research paper writing service try ⇒⇒⇒ WRITE-MY-PAPER.net ⇐⇐⇐ liked them A LOTTT Really nice solutions for the last-day papers
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)

  1. 1. Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)<br />José Juan Reyes Zuñiga<br />CIO<br />SynergyJ<br />
  2. 2. 2<br />Objetivo<br />Demostrarlasventajascompetitivas al desarrollarcon Groovy & Grails, llevar el control del versionado con Git ysimular la puesta en producción de la aplicación.<br />
  3. 3. Agenda<br />Groovy<br />Grails<br />Git<br />Google AppEngine<br />3<br />
  4. 4. Groovy…¿Qué es…?<br />Es un lenguaje dinámico para la JVM<br />Construido con la fuerza de Java pero incluyendo características poderosas inspiradas en lenguajes como Python, Ruby y Smalltalk<br />Es un proyecto con licencia Open Source-Apache<br />Gramática relajada derivada de Java 5<br />Integración fluida con todos los objetos Java y los cientos de librerías<br />Compila a bytecode Java, por lo tanto, se puede usar donde sea<br />Simplifica las pruebas<br />Aumenta la productividad del desarrollador<br />Su curva de aprendizaje mínima<br />
  5. 5. 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 />
  6. 6. 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 />
  7. 7. 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 />
  8. 8. ¿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 />
  9. 9. + 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 />
  10. 10. 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 />
  11. 11. 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 />
  12. 12. Ahora hablemos de …<br />
  13. 13. ¿Que es Grails?<br />Una plataforma para desarrollo ágil en Web<br />Un framework MVC full-stack<br />Un proyecto Open Source<br />Corre en la JVM<br />Desarrollo de Aplicaciones con Groovy<br />Altamente expresivo<br />Totalmente orientado a Objetos<br />Dinámico<br />Sintaxis familiar<br />Perfecta integración con Java<br />Convención sobre configuración<br />DRY(Don&apos;tRepeatYourself)<br />
  14. 14. Stack de tecnologías<br />
  15. 15. ¿qué me provee?<br />MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffolding REST LayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring <br />flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui<br />
  16. 16. Let’scodeagain!!!<br />
  17. 17. Más Grails…<br />Mappings<br />Internacionalización<br />Ajax<br />WebFlow<br />GORM<br />Servicios<br />Plugins<br />Seguridad<br />Web Services<br />Más…<br />
  18. 18. La vida y los proyectos…<br />“…así la vida como los proyectos de software son aburridos si se cuentan y se desarrollan de manera líneal…”<br />
  19. 19. Git– Control de versiones<br />Git es:<br />“Un sistema de control de versiones distribuido libre y open source, diseñado para manejar cada objeto en proyectos pequeños y grandes con velocidad y eficiencia…”<br />Creado por Linus Torvalds<br />
  20. 20. ¿Distribuido?<br />Colaboración<br />Cambios sin perturbar a los demás<br />Las ramas(branches) que afectan al repositorio local son inaceptables<br />Confianza en tus datos<br />Sin tener que creer implícitamente en los demás o en el hosting<br />Liberaciones de Ingeniería<br />Ciclos concurrentes de desarrollo/pruebas/liberaciones<br />
  21. 21. Aaahhh Distribuido….<br />
  22. 22. Diferencias y ventajas con CVCS<br />No hay copias de referencia, solo copias de trabajo locales<br />Las operaciones más comunes son regularmente más rápidas ya que no tienen que comunicarse con un servidor central<br />No hay necesidad de hacer update antes de hacer commit<br />No hay problemas con la red y la latencia generada<br />No necesitamos hacer una instalación en un servidor remoto<br />Los desarrolladores pueden trabajar sin estar conectados a su red local o a Internet<br />Branches experimentales<br />Performance<br />
  23. 23. Formas de trabajo con Git & DCVS<br />Alone<br />En pares<br />Centralizado<br />Descentralizado<br />
  24. 24. Instalación de Git<br />En función del Sistema Operativo:<br />Basado en RedHat<br />RPM<br />Basado en Debian<br />Debs<br />Windows<br />.exe<br />OS X<br />DMG<br />Solaris<br />
  25. 25. Continuemos entonces…<br />
  26. 26. Puesta en producción…<br />
  27. 27. Infraestructura<br />
  28. 28. Una opción…<br />
  29. 29. Google AppEngine<br />Solución de CloudComputing de Google<br />Correr aplicaciones en la infraestructura escalable de Google<br />El pago es basado en los recursos usados: almacenamiento, ancho de banda(medido en GB)<br />De manera gratuita:<br />Hasta 500MB de almacenamiento<br />Hasta 5 millones de páginas vistas por mes<br />Ahora está disponible para la JVM<br />Por lo tanto para Scala, JRuby y...<br />GROOVY!!!<br />
  30. 30. Entorno GAE<br />Corre en Java 6(con algunas limitaciones)<br />El request será terminado si no se completa en 30 segundos, arrojando excepción<br />Además:<br />No hay sockets<br />No hay hilos o timers<br />No hay JNDI<br />System.gc(),System.exit(),etc, no hacen nada<br />Algunos problemas con el classloader<br />
  31. 31. Escalabilidad en GAE<br />30 requests dinámicos simultáneos<br />El tiempo de procesamiento del lado servidor es de 75ms<br />Alrededor de 400 request/seg. Sin latencia adicional<br />
  32. 32. Servicios en GAE<br />URL Fetch<br />Mail<br />Memcache<br />Manipulación de Imágenes<br />Manejo de usuarios<br />Consola de administración<br />Calendarización<br />
  33. 33. Almacenamiento en GAE<br />Datastore<br />Almacenamiento de datos distribuido y transaccional<br />Filtrado y ordenamiento por el valor del propiedad<br />No es relacional, es “esquemático”<br />
  34. 34. Persistencia en GAE<br />Toda la persistencia es definida por clases @not@d@s<br />JDO<br />JPA<br />Todo es almacenado en BigTable<br />Es masivamente escalable<br />Es un sistema de almacenamiento distribuido<br />Usada por Google para muchas cosas<br />Para Java, la API usa el optimizador de Datanucleus<br />
  35. 35. Desarrollo en GAE<br />Cuenta con un SDK descargable<br />Incluye un webserver<br />Emula los servicios<br />Incluye una herramienta de Upload<br />Soporta Java 5 y 6<br />Existen un plugin de GAE para Eclipse y uno para Grails<br />Debemos de cubrir un proceso de registro sencillo<br />Solo podemos subir 10 aplicaciones(gratuitamente)<br />
  36. 36. Plugin de GAE para Grails<br />Crear una appGrails que coincida con el nombre de nuestra app GAE<br />Desinstalar el plugin de Hibernate<br />Instalar el plugin app-engine(previokit de GAE instalado)<br />Establecer la versión(a 1 preferentemente)<br />Desplegar<br />Listo..<br />
  37. 37. GAE es una opción<br />Existen también:<br />Amazon EC2<br />SpringSourceCloudFoundry<br />Entre otros…<br />
  38. 38. All in one-place<br />
  39. 39. em@il: jjuan.reyes@synergyj.com<br />facebook, flickr, digg, twitter, delicious: neodevelop<br />Comunidad: http://grails.org.mx<br />Preguntas y Respuestas<br />

×