4. Java: Como plataforma
●El corazón de Java es su máquina virtual
●Código se compila. Write once, run anywhere
●Aplicaciones empresariales siguen estándares JEE
●Las aplicaciones se corren en applications servers.
●Java como lenguaje requiere cierto seniority. Tiene una
curva de aprendizaje mas lenta que otros lenguajes.
5. Groovy
●Lenguaje dinámico que corre sobre la VM de Java
●Integración e interoperabilidad con Java. Utilización de
todas la librerías desarrolladas en java
●Performance es similar entre Java y Groovy (desde Java
7 en adelante)
●Groovy 2.3 superior permite compilación estática
●Reducción en la cantidad de líneas de código (hasta
50%)
6. Groovy Funcionalidades
●Optional Typing vs Dynamic Typing vs Static Typing
●Metaprogramming y AST Transformations
●Programacion funcional (Closure)
●Builders Xml, Html, Swing, Jmx
●Groovy “decora” la Api actual de Java
●Native Syntax Constructs (Syntax Sugar)
●Navegación segura de propiedades
●Soporte de Domain Specific Language
●Unit Test: JUnit, Spock
9. Grails
●Es un framework web MVC basado en acciones
●Grails sigue los siguientes principios:
oCoC (Convention over configuration)
oDRY (Don’t repeat yourself)
●La esencia de Rails pero con la robustez de Java
10. Grails
●Utiliza los siguientes frameworks:
●Java: Jvm, JEE y especificaciones
●Spring: IoC, DI, Spring MVC, Spring WebFlow
●ORM: Hibernate o MongoDB
●Sitemesh: Html Layouts
●FullStack
12. ●Grails está construido sobre la base de un sistema de
plugins
●Un plugin puede proveer una serie de componentes:
Clases de dominio, Controllers, Services, etc
●Un plugin puede:
omodificar la configuración
oagregar métodos en tiempo de ejecución
omodificar clases en tiempo de compilación
Grails: Plugins
16. Forma de trabajo
Cuanto tiempo tarda su
organización en introducir un
cambio que solo involucra una
línea de código?
17. ●Nuestra máxima prioridad es la de satisfacer al cliente a través de la entrega
temprana y continua del software solicitado
●El software debe estar siempre preparado para ser instalado en producción
●Las entregas deben realizarse por necesidades del negocios y no por
restricciones técnicas.
Proceso de desarrollo
19. ●Automatizacion
●Patrones de diseño y buenas prácticas
●Colaboración de todos los roles involucrados
●Ingredientes
oConfiguration management
oIntegracion continua
oTest automaticos
Proceso de desarrollo
20. ●Continuous Integration:
oEs la práctica de integrar el código lo antes posible.
oSe realizan test automaticos para detectar posibles fallas.
oCuando se sube un cambio al repositorio un servidor se encarga de
ejecutar la integración
●Continuous Delivery:
oEs la práctica donde se realiza la entrega continua.
oEl desarrollador decide si los cambios estan listos para pasar a la
siguiente etapa
oLa evaluación es constante de usuarios y QAs
Proceso de desarrollo