Trabajos Prácticos y Finales de Algoritmos y Programación 3 - 7507 - 2c2017 FIUBA
Dejo acá los TPs de la cursada y los finales que rendí de Algo3.
El final que aprobé es el del 18 de diciembre y lo dejo con la solución propuesta y un par de notas que tome durante el examen.
El TP2 de Java, (incluido en la carpeta de TPs) se desarrolló acá
De cambiar alguna lectura obligatoria o presentación, se aceptan pull requests para tener al dia el repo!!
En los finales suelen tomar casi siempre el mismo patron de diseño, Double dispatch. Double dispatch es muy polemico y debatible (hay quienes dicen que no es un patron, otros que directamente perjudica el código, etc), por eso hay tan poca documentación online. Suele estar visto bajo el patron Visitor o Multiple-Dispatch. La mejor forma de aprenderlo es con el Ejemplo de Double Dispatch de Tomás Arjowskywiki sacado de la wiki de FIUBA.
Lo otro que siempre preguntan son los principios SOLID. Estos son 5 principios fundamentales de POO acuñados por Robert Martin ('Uncle Bob', uno de los capos de POO y del desarrollo agil).
SI NO SE HACEN TESTS UNITARIOS EN EL MODELO DEL FINAL NO SE APRUEBA!!!
Si o si leer:
Solo de cebado:
-
Este texto que resume single, double y multiple dispatch sirve bastante para entenderlo mejor.
-
Visitor Pattern: https://sourcemaking.com/design_patterns/visitor y https://youtu.be/pL4mOUDi54o
-
Double dispatch otro ejemplo: https://github.com/iluwatar/java-design-patterns/tree/master/double-dispatch
-
Articulos de Uncle Bob: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod