Haremos un ejercicio de repaso sobre los patrones Decorator y Template method.
Conoceremos el mixin como un concepto que permite la reutilización de código de forma más flexible que la herencia.
Veremos la implementación del mismo ejercicio de Tarjetas de Crédito en Wollok con mixins.
Y luego la implementación del ejercicio de Tarjetas de Crédito utilizando delegated classes/methods
Te recordamos que en el sitio web de Wollok tenés información sobre cómo actualizarlo y mucho material
Videos del canal de youtube: Delegated methods y Mixines.
Conoceremos el ejemplo de los clientes de la tarjeta de crédito, para evaluar diferentes soluciones. Te dejamos las diapositivas de la clase y el ejemplo Decorator en Github, vamos a repasar cómo modelar un Builder para facilitar la creación de clientes en los tests, y luego el Decorator.
Podés leer el apunte Clientes de una tarjeta de crédito - 5 soluciones posibles
Al final vamos a resolver el parcialito de UML, contestando dudas.
Videos del canal de youtube: Decorator + Builder, Cómo comunicar un diseño
Material complementario
Para practicar en casa: tenés la guía de ejercicios Modelado de Objetos con patrones, en particular Intercepción de código
Ya podés descargarte el assignment correspondiente al parcialito de UML de Obras sociales. Vence el domingo 06/04 a las 18:00.
Estudiaremos el testeo de stubs y mocks mediante el ejemplo de la Ruleta Virtual, también podés buscar en los ejemplos el de Lista de Correo (branch master). Te dejamos el paper de Martin Fowler Mocks aren't stubs para que complementes el contenido de la clase, y el link a las diapositivas.
Videos del canal de youtube: Ejemplo Ruleta (Stubs y Mocks)
Empezaremos a conocer el ejemplo de los clientes de la tarjeta de crédito, para evaluar diferentes soluciones. Te dejamos las diapositivas de la clase y el ejemplo Decorator en Github, que tiene la primera solución con condicionales y luego las condiciones comerciales implementadas como strategies.
Podés ir comenzando a leer el apunte Clientes de una tarjeta de crédito - 5 soluciones posibles
Manejo del cambio: expansión y refactoring. Bad Smells.
Diapositivas: Expansión y Refactoring para el manejo del cambio.
Videos del canal de youtube: Refactoring
Tarea para el hogar: bajate el ejemplo de la Agencia de Viajes, fijate qué ideas de diseño te hacen ruido y proponé mejoras. Las vamos a analizar entre todes en clase.
Objetivo: entender el proceso del diseño y cómo los design patterns nos ayudan en esta tarea.
Seguimos con el Proceso del Diseño, con el Ejercicio Manejo de proyectos, donde aparecen los patrones Strategy, Template Method y Composite.
Tenés estos videos del canal de youtube, donde explicamos los patrones Strategy, Template method y Composite.
Y te dejamos un video que explica el patrón Strategy en Wollok aprovechando el diagrama dinámico
Objetivo: adquirir herramientas que nos ayuden a solucionar errores. Entender el proceso del diseño y cómo los design patterns nos ayudan en esta tarea.
Primero vamos a ver cómo es la integración continua de nuestro proyecto (te dejamos un video que explica CI para la materia) y lo vemos en acción. Badges. Repaso de cobertura de tests (video explicativo de Cobertura de tests en la nube y cómo agregar status badge de build y cobertura al README de tu repo).
Cómo corregir un error en runtime, a partir de un ejemplo en github
Empezaremos a estudiar el Proceso del Diseño, con el Ejercicio Manejo de proyectos: Strategy, Template Method y Composite.
Como BONUS, les dejamos un video que explica qué son las interfaces en Kotlin y su comparación con las clases abstractas (link a las diapositivas)
Si les interesa conocer una metodología para organizar los equipos de trabajo para el TP, les dejo material sobre Estimaciones del libro Desarrollo de Software Ágil en 10Pines de Federico Zuppa.
Objetivo: entrar en calor con el set de tecnologías que propone la materia y repasar técnicas de testing.
Apuntes principales:
Vamos a familiarizarnos con el entorno de trabajo de la materia, en particular
Crearemos un proyecto desde cero (te dejamos un video que lo explica)
Entenderemos la diferencia entre JDK vs. JRE
Y tendremos una introducción a Gradle
Por otra parte, nuestro primer proyecto de Kotlin nos servirá de excusa para revisar cómo diseñamos los tests
el uso de Kotest como framework de testing (hay un apunte más completo de Testing para que leas)
Si hay tiempo te mostraremos cómo es la integración continua de nuestro proyecto (te dejamos un video que explica CI para la materia) y lo vemos en acción. Badges. Repaso de cobertura de tests (video explicativo de Cobertura de tests en la nube y cómo agregar status badge de build y cobertura al README de tu repo).
Recordá que tenés la página con más ejemplos
¿Qué tengo que hacer después de clase? Si no lo hiciste, anotar acá tus datos y armar los grupos de 4 integrantes para la cursada práctica.
Para empezar a trabajar en tu compu: todo lo que necesitás lo tenés en la página principal de Kotlin en la wiki de Uqbar. Tenés guías para crear un proyecto, descargar ejemplos existentes, conocer Gradle para manejar las dependencias, configurar la integración continua, trabajar con colecciones o entender el manejo de errores, entre muchas otras cosas.
Fundamental tené a mano siempre el link a la guía rápida del lenguaje.