Open flbulgarelli opened 3 years ago
PD: otra cosa que no queda claro es qué es exactamente una ciudad
(¿es un string? ¿un número? ¿un objeto de alto nivel?) y sobre todo cómo se la obtiene (en ningún lugar se explicita quién conoce a la ciudad que usaremos con el WeatherService
)
Buenas. Gracias por el feedback. Es verdad, me descuidé bastante con el código. Seguramente arme un nuevo repo para arrancar de cero teniendo todo mas ordenado y aplicando todo esto que dijiste. Saludos!
¡Buenas!
Te dejo nuestros comentarios:
sugerirAtuendo
. Si, es cierto que se puede inferir algo de todo esto por el nombre del parámetro y el diagrama de clases (:+1:) pero todavía hay algunos huecos:prendas
es una lista de prendas? ¿Es un set?Guardarropas
recibe las prendas por parámetro si según el diagrama de clases tiene una relación fuerte con una lista de prendas? ¿Estamos hablando de la misma lista de prendas del parámetro u otra? ¿Hay un atributo o es una flecha incorrecta o una inconsistencia del diagrama?GeneradorDeAtuendos
? ¿Se inyecta?GeneradorDeAtuendos
? No está dicho ni en el diagrama ni en el código cuales son los mensajes que éste entiende. Tampoco queda claro cuales son sus responsabilidades. ¿Qué le compete al guardarropas y qué al generador? ¿Por qué no son lo mismo?Guardarropa
,Generador
yServicioDeClima
? ¿En qué momento se utiliza la temperatura? ¿Cuántas veces?GeneradorDeAtuendos
tiene un setter ... https://github.com/NPeykov/DDS-2021/blob/3e8e6fa3749c67d316e4b63a1df7a4de341701f9/TP%20-%20QMP/pseudocodigo.java#L12-L16 ... en lugar de inyectar por constructor su dependencia.GeneradorDeSugerencias
que planteamos en el mail Aclaraciones QMP4 tiene una interfaz similar (si interpreto tu código) , pero vos acá dotaste a ese componente de una relación con el sistema de clima y de nuevas responsabilidades que originalmente no le eran propias. Si realmente es un componente ya desarrollado, cerrado, del cual no vamos a asumir su implementación y hasta incluso sea externo, no podemos agregarle dependencias o responsabilidades, porque eso implicaría que cambiamos el code ownership, pasa a ser nuestro y ya no podemos asumir que la implementación no nos importa y es irrelevante. En definitiva, si vas a asumir que elGeneradorDeSugerencias
ya existe y genera sugerencias basadas en combinatorias, no debés modificar ese comportamiento, debés asumir que está "cerrado". En caso contrario, esperaremos que desarrolles completamente el algoritmo o al menos con el suficiente detalle como para que se entienda como interacciona con el resto de los componentes.getClima
, porque tenés que demostrar que esa adaptación es posible. ¿Cómo convierte a la lista de diccionarios en esedouble
? No es un mero detalle.Material
.... https://github.com/NPeykov/DDS-2021/blob/3e8e6fa3749c67d316e4b63a1df7a4de341701f9/TP%20-%20QMP/pseudocodigo.java#L118-L122 ... expone un método que muta a la misma, pero el mismo en principio no necesita ser mutable para que el sistema funcione. Por ese motivo, en lugar de especificar la trama mediante un setter, debería ser inyectado por constructor. Lo mismo vale paraTipoPrenda
: https://github.com/NPeykov/DDS-2021/blob/3e8e6fa3749c67d316e4b63a1df7a4de341701f9/TP%20-%20QMP/pseudocodigo.java#L89-L91material
ycolorPrimario
else
s, dado que la excepción corta el flujo de ejecución y podes obviarlo. Lo mismo aplica acá: https://github.com/NPeykov/DDS-2021/blob/3e8e6fa3749c67d316e4b63a1df7a4de341701f9/TP%20-%20QMP/pseudocodigo.java#L60-L62¡Saludos!