Grails 2013 - PUCMM - Santiago - Sistemas

download Grails 2013 - PUCMM - Santiago - Sistemas

If you can't read please download the document

description

Presentación sobre Grails 2.0 mostrando las virtudes y las bases del framework web diseñado para ser productivo en nuestras implementaciones

Transcript of Grails 2013 - PUCMM - Santiago - Sistemas

  • 1. Ciclos Ms Cortos: Desarrollo Web gil con Grails

2. Presentacin (un poco personal) Carlos Camacho. Profesor por vocacin. Pertenezco al lado oscuro de la fuerza (DarkSide). Aldea de la Hoja (Konoha) Evangelista de Java. Apasionado de Linux. Nacido en la era Nintendo. Amante de los RPG(Chrono Trigger). Rock, Merengue, Bachata, Balada, Tpico, Salsa,Son, Dembow, Reggaeton (Pirata) 3. Presentacin (un poco ms serio) Carlos Camacho. Ingeniero Telemtico. Magster Tecnologa Educativa. Profesor Departamento de Sistema, PUCMM. Ms de 6 aos de experiencia desarrollo desistemas en tecnologa Java (JSE y JEE). 3 aos de implementacin en sistemas basadosen Grails. Fundacin Cdigo Libre Santiago - MiembroFundador. Presidente AvatharTech. 4. Presentacin (un poco ms serio) Algunas Empresas: Cementos Cibao. Edenorte. Reefer Services. Martima Dominicana. StoneWood. Geocom. PyC Servicios NewSoft. NewtonSoft 5. Presentacin (un poco ms serio) Algunos API, Frameworks, Motores : 6. Objetivos Inicio de charlas tcnicas y actividades. Introduccin Desarrollo gil de Sistemas. Introduccin Grails. Demostracin de funcionalidades en Grails. 7. Charlas Tcnicas? Crear un programa de actividades paramostrar tecnologas alternativas yemergentes. Departamento de Sistema. Comit de Estudiantes. tiles o Necesarias en el mbito laboral. Investigacin en el rea acadmica 8. Entrado en Materia 9. Desarrollo gil? El termino gil nace en el 2001, aplicado en endesarrollo de software. Creado por el The AgileAlliance. Fue creado manifiesto gil: Al Individuo y las interacciones sobre el proceso ylas herramientas. Software funcional sobre buena documentacin. Colaboracin al cliente sobre un contrato. Responder a los cambios sobre un plan rgido.Fuente: http://noqualityinside.com.ar/nqi/nqifiles/XP_Agil.pdf 10. Cmo Trabaja el Desarrollo gil? 1Requerimiento EvaluacinAnlisisProceso Iterativo Y 4Acompaado2de los ActoresPruebasDiseoCodificacin 3 11. Algunas Metodologas Indican la forma y proceso para manejar un proyectogil: eXtreme Programming (XP). SCRUM. Feature-driven development (FDD). 12. Framework gil? 13. Framework gil Es un marco de trabajo (framework) que implementaconceptos, buenas prcticas, patrones entre otros; con elobjetivo de resolver un problema. gil, cuando se adapta al desarrollo teniendo en cuentala metodologa gil y cada una de sus fases. Disea para la alta productividad.Fuente: http://www.riehle.org/computer-science/research/dissertation/diss-a4.pdf 14. Grails 15. Caractersticas del Framework Corre sobre una maquina virtual de Java. Integracin completa con Java. Implementa la pila completa (Full-stack) Java EE (Java Platform,Enterprise Edition). Basado en el lenguaje dinmico (Groovy) y tecnologa Java (Spring yHibernate). Proporciona: Desarrollo orientado a pruebas. Incluye servidor web, base de datos, gestin dependencia y recargaautomtica. Gran biblioteca de plugins Filosofa: Convencin sobre Configuracin (CoC, siglas en Ingles). No lo repitas (DRY, Dont Repeat Yourself). Inspirado en frameworks como Ruby on Rails y Django 16. Groovy 17. Por qu Groovy? Lenguaje dinmico diseado para la JVM. Su objetivo es ser muy similar a la sintaxis Java(Pero con esteroides). Mucho ms expresivo que Java. Ventajas: Menos lineas de cdigo Expresividad. Flexibilidad. Aumento de la productividad. Groovy = Java 18. Productividad?Clase Java Contador Palabrasimport java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.StringTokenizer;public class ContadorPalabras {public static void main(String[] args) throws IOException { System.out.println("Contador Palabras en Java"); int chars = 0, lines = 0, words = 0; String filename = "/home/vacax/Documentos/PUCMM/Charlas/contador.txt"; BufferedReader r = new BufferedReader(new FileReader(filename)); String it; while ((it = r.readLine()) != null) {chars += it.length() + 1;words += new StringTokenizer(it).countTokens();lines++; } System.out.println("t Lineas: " + lines + "t Palabras: " + words + "t Caracteres: " + chars + "tArchivo: " + filename);}} 19. Productividad?Groovy Contador Palabrasprintln "Contador de palabras en Groovy"filename = "/home/vacax/Documentos/PUCMM/Charlas/contador.txt";chars=0; lines=0; words=0;new File(filename).eachLine {chars += it.length() + 1words += it.tokenize().size();lines++;}//imprimiendo.println "t Lineas: ${lines} t Palabras: ${words} t Caracteres: ${chars} t Archivo: ${filename}" Menos linea de cdigo, ms expresivo y flexible. 20. Convencin Sobre Configuracin (CoC) 21. De qu se trata? Su objetivo: Incrementar la productividad. Cmo lo hace? Toma las decisiones repetitivas para elprogramador simplificando el proceso. Define una criterio de como hacer / definir lascosas (Convencin). Es una camisa de fuerza? No. Cuando se necesita otro comportamiento sedebe Configurar. 22. Ejemplo - Configuracinimport java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;Importar clasesimport javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; Configurar Servlet@WebServlet(name = "HolaMundoServlet", urlPatterns = {"/HolaMundoServlet"})public class HolaMundoServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");Obteniendo laPrintWriter out = response.getWriter(); peticionestry {out.println("Hola Mundo Servlet 3.0");} finally {out.close();}}} 23. Ejemplo Convencinpackage borramepruebamavenclass HolaMundoController { El identificador de Controller indica su accindef index() { Peticin asociada a un mtodorender("Hola Mundo desde Grails") Salida tipo Texto}} 24. Tecnologas Convergentes en Grails 25. Ecosistema Probado 26. Qu tenemos con Grails? 27. Fuertemente IntegradoContenedor MVCGSP (Vista)Servlet GORMBase de datos I18n BuildPrueba Documentacin 28. Quines Utilizan Grails? Fuente: http://grails.org/websites 29. Anatoma Proyecto Grails 30. Flujo de peticionesURLMapeo ControladorVista Dominios ServiciosUsuario Interaccin otros componentes 31. Clases de Dominio Representan las clases directamente conectada conalgn motor de persistencia. (Mysql, Postgresql,SqlServer, Oracle, Db2, entre otros) Representa el modelo dentro del patrn MVC. 32. Controladores Representan las clases encargada de procesar laspeticiones de los clientes. Representa el controlador dentro del patrn MVC. 33. Vista Representa el mecanismo de interfaz para salida yentrada de los clientes. Asociacin directa con el Controlador. Indica la vista dentro del MVC. 34. Servicios Artefacto para manejar las reglas de negocio. Gestionas la transacciones entre el controlador y lasclases de dominios. 35. Taglibs Permite encapsular componentes con el objetivo deser reutilizado. Uso simplificado contrario a otras tecnologas. 36. Test Soporta pruebas unitarias y de integracin. Las pruebas unitarias son componentes atmicos,buscan no depender de otras partes. 37. Plugins Permite incluir funcionalidades realizadas porterceros a nuestro proyecto. Repositorio comn para su alojamiento(http://grails.org/plugins/). Contamos con ms de 700 plugins: Seguridad Email NoSql 38. Configuracin Encargado de configurar todos los parmetros de laaplicacin: Base de datos. Mapeo URL. Configuracin. Gestin de dependencia (Maven, Gradle) 39. Aplicacin Demo En vivo 40. Preguntas? 41. ContactoEmail: [email protected] /[email protected]: ccamachog