Clases

Clase actual

Etapa de definición

Vamos a estar armando meets para defender el parcial que acabamos de pasar: El Tío Cosa Nostra

Clases anteriores

Clase 12

Vamos a resolver el parcial del año pasado entre todos: Taller Mecánico (2019).

Clase 11

Objetivo de la clase: Comprender técnicas para diseñar la creación de los objetos y sus dependencias.

Apuntes principales: Resumen de la clase de ejemplos creacionales - Microprocesador. Patrones creacionales.

Ejemplos: Fijate en la página de ejemplos la solución de la Máquina de Helado y también la de Patrones creacionales del Microprocesador.

Material complementario

Clase 10

Objetivo de la clase: Modelar comportamiento como un objeto.

Vamos a encarar el ejercicio del Microprocesador (primera parte). Podés descargarte:

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

  • master: 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

Clase 8

Objetivo: explorar alternativas para agregar funcionalidad a objetos existentes.

Material principal:

Clase 7

Veremos el Decorator pattern. Te dejamos las diapositivas de la clase y el ejemplo Decorator en Github, tenés varios branches: if, strategy y decorator son los que vimos.

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

Videos de clase:

Clase 6

Veremos el ejemplo Lista de Correo (link al enunciado), que nos servirá para repasar diferentes formas de modelar soluciones y cómo compararlas entre sí, la aparición de requerimientos asincrónicos, y el diseño de interfaces entre componentes.

Les dejamos para después de clase el assignment de Github classroom con el parcialito de comunicación del Diseño. Necesitamos que lo suban también al campus virtual, ingresando a la materia y adjuntando la solución.

Videos de clase:

Clase 5

Continuaremos viendo cómo es el Manejo del cambio: expansión y refactoring, a partir de ejemplos concretos y de cómo solucionarlos en el IDE. Te dejamos el link a las diapositivas.

Luego estudiaremos el testeo de stubs y mocks mediante el ejemplo Alumnos, también podés buscar en los ejemplos el Canje de Premios y 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.

Videos de clase

Clase 4

Repasaremos los patrones strategy, template method y composite, y veremos cómo resolver el costo impositivo de una tarea.

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

Videos de clase:

Clase 3

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

Nos queda pendiente: repasar Strategy, Composite. Contar Template method. Resolver costo impositivo.

Material complementario

  • Para practicar en casa: tenés la guía de ejercicios Modelado de Objetos con patrones, en particular Selección de comportamiento

Videos de clase:

Clase 2

Objetivo: seguir amigándonos con el entorno Xtend.

Apuntes principales:

Videos de clase

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:

  • Vamos a familiarizarnos con el entorno de trabajo de la materia, en particular
    • Crearemos un proyecto desde cero
    • Entenderemos la diferencia entre JDK vs. JRE
    • Y tendremos una introducción a Maven
  • Por otra parte, nuestro primer proyecto de xtend nos servirá de excusa para revisar cómo diseñamos los tests

Recordá que tenés la página con más ejemplos

¿Qué tengo que hacer después de clase? Anotar acá tus datos y armar los grupos de 3 integrantes para la cursada práctica

Para empezar a trabajar en tu compu: seguí los pasos de instalación del entorno Xtend. Te va a ayudar a configurar las opciones para pasarla mejor y también a tenés una guía para generar un proyecto nuevo.

Fundamental tené a mano siempre el link a la guía rápida del lenguaje y los Shortcuts Felices que quizás conozcas de Algoritmos 1