Clases

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: Observer pattern - Inyección de dependencias

Clase 8

Clase 7

Clase 6

  • Primero continuaremos con la explicación de testeo unitario repasando los stubs y conociendo los mocks.

  • Luego resolveremos el parcialito de UML

  • Videos de clase: Stubs y Mocks (repaso y última parte). Explicación del Parcial UML.

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

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: Alumnos, 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.

Después de la clase vamos a liberar el assignment de UML para que lo resuelvas, para lo cual tenés que leer el apunte Guías para comunicar un diseño

Clase 4

Después del feriado de semana santa, 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.

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:

  • 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

  • Videos de la clase: Intro a TDD - Parte 1, Intro a TDD - Parte 2

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