¡Hola!
Ya conocemos la materia, por lo que ahora podremos profundizar sobre muchos temas. Para empezar, tenemos que saber diseñar y es necesario introducirnos en lo que son las buenas prácticas.
Importante: En caso de que tengas dudas sobre Java y Maven, ¡preguntá!
Resumen
- Aprendimos sobre cualidades de diseño y sobre cómo comunicarlo.
- Evacuamos dudas y consultas sobre Java y Maven. En particular, recalcamos que es una herramienta de gestión de dependencias y de construcción de proyectos, que ofrece comandos como:
# para instalar dependencias y proyectos
mvn install
# ejecutar pruebas
mvn test
# empaquetar al proyecto
mvn package
- Hablamos sobre cualidades de diseño. Hablamos sobre la correlación positiva y negativa: son pocos los pares de cualidades (si es que siquiera existen) en que siempre una va a ir en contra o a favor de la otra. En general, tenemos que estudiar la correlación entre las cualidades de forma situada. ¿Hay una solución ideal? No ¿Buscaremos producir una única solución? Tampoco. El objetivo es comparar, formar criterio y lograr pensamiento crítico.
- Abordamos el concepto de Patrones de Diseño. Dentro de estos patrones, vimos:
- Strategy (estrategia): solución basada en composición. No toda composición es un strategy.
- Template method (método plantilla): solución basada en herencia con clase abstracta que tiene un método concreto. No toda herencia ni herencia de clase abstracta es un template method.
- Hablamos sobre la importancia de pensar los patrones desde la semántica y no solamente desde las estructuras.
- Repasamos soluciones basadas en composición vs herencia.
- Ventajas y desventajas de cada una: las primeras son más dinámicas, mientras que las segundas son estáticas.
Material
- Presentación
- Video de Template y Strategy
- Cualidades de Diseño
- Complementario: Guías para comunicar un diseño
- Complementario: Las entradas del diseño
- Introducción a los patrones de de diseño) t)_
- Solución - Macowins
- Versión explicada
- Pseudocódigo visto en clase
- Video sobre patrones Strategy y Template Method
- Explicación opciones visto el año anterior : tienen que entrar con el usuario de la facultad.
- Tarjetas de patrones de diseño (no reemplazan al libro de patrones de GOF): https://refactoring.guru/es/design-patterns
- https://refactoring.guru/es/design-patterns/strategy
- https://refactoring.guru/es/design-patterns/template-method
Tarea
- Ejercicio: Qué Me Pongo - Iteración I. ¡Traelo hecho para la clase que viene!
- Mirá el video Desafiando los algoritmos de opresión (Tiene subtítulos automáticos, no son los mejores pero se entiende bastante bien). ¡Lo charlamos en clase!
- Dale un nuevo vistazo al apunte de Cualidades de Diseño: lanzamos una nueva versión.
- Y leé el apunte sobre Diseño de manejos de errores
- Complementario: Excepciones en Java