Clases

Clase 10

Objetivo de la clase: Modelar comportamiento como un objeto.

Vamos a encarar el ejercicio del Microprocesador (primera parte). Podés descargarte el repositorio con la solución principal que vamos a ver en el branch master.

Material complementario

Clase 9

Objetivo de la clase: Conocer el patrón de diseño observer que sirve para desacoplar eventos de un objeto.

Continuaremos con el enunciado de Listas de correo, trabajando el requerimiento Enviar mensaje junto con los agregados del punto 2, que nos servirá para dar Lista de correo: eventos ante un post.

También veremos la Inyección de Dependencias para ver cómo se inyecta el componente que envía mails, implementado en estos tres ejemplos

  • constructor: trabaja la inyección de dependencias del MessageSender en el constructor del MailObserver

  • singleton: el componente que envía mails es un Singleton y esto hace fallar los tests.

  • service-locator: implementa el patrón arquitectural Service Locator para desacoplar el envío de mensajes de la aplicación.

Por último, hablaremos sobre los efectos en el patrón Observer.

Material complementario

  • Para practicar en casa: tenés la guía de ejercicios Modelado de Objetos con patrones, en particular Notificaciones / Manejo de eventos

Link a las diapositivas de clase

Videos de clase 2021: Observer pattern - Inyección de dependencias

Clase 8

Clase 7

Clase 6

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

Clase 5

Ya tenés disponible el assignment del parcialito de UML sobre un ejercicio de Ruleta. Tenés hasta el domingo 17/04 20:00 hs. para entregar.

Vamos a retomar el apunte Manejo del cambio: expansión y refactoring, explicando qué son los bad smells y diferentes refactors que nos pueden ayudar.

Luego 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. Te dejamos el link a las diapositivas. También tenés el video en youtube explicando el ejemplo.

Clase 4

  • Repasaremos los patrones strategy, template method y composite, y veremos cómo resolver el costo de complejidad media y máxima, repasaremos la diferencia entre clase abstracta e interfaz, e implementaremos el costo impositivo de una tarea.

  • Luego hablaremos del Manejo del cambio: expansión y refactoring.

Clase 3

Objetivo: entender el proceso del diseño y cómo los design patterns nos ayudan en esta tarea.

Clase 2

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.

Clase 1

Objetivo: entrar en calor con el set de tecnologías que propone la materia y repasar las técnicas de testing.

Apuntes principales:

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 3 integrantes para la cursada práctica.

KOTLIN + IntelliJ

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.