Open flbulgarelli opened 3 years ago
PD: Veo que en Usuario agregaste una lista para llevar el registro de las propuestas ... https://github.com/ealon2/dds/blob/91a19434dd1615a4697a047813530962e5ecf900/src/main/java/qmp/model/Usuario.java#L12-L13 ... pero también que tenés modelado al Guardarropas
y que tenés múltiples de ellos por usuarie. Me pregunto entonces por qué si las acciones de agregar o quitar son siempre respecto a un guardarropas particular ....
Como usuarie de QuéMePongo, quiero que otro usuario me proponga tentativamente agregar una prenda al guardarropas.
...entonces agregás las sugerencias al usuario, perdiendo el contexto de dónde agregar las cosas. Aún si los objetos propuesta tuvieran una referencia al guardarropas afectado, sería más complejo eso que dotar al guardarropas de su lista de sus propuestas.
Por otro lado, cuidado con agregar anotaciones tecnológicas a la clase Usuario
. ¿Para qué tenés ésto https://github.com/ealon2/dds/blob/91a19434dd1615a4697a047813530962e5ecf900/src/main/java/qmp/model/Usuario.java#L19? Me imagino que esto viene de la mano de que empezaste a implementar una interfaz HTTP, pero estás volviendo al código de dominio más complejo, con dependencias de bibliotecas externas, y en este momento no es necesario. Quizás, dependiendo de cómo expongamos nuestro código en la presentación, éstas no sean necesarias
Por último, dado que ésto es un Mock ... https://github.com/ealon2/dds/blob/master/src/main/java/qmp/api/AccuWeatherAPI.java ... no debería formar parte del código productivo, sino que debería estar en el directorio de test: src/test/java
.
Buenas Lean! Antes que nada muchas gracias por tomarte tiempo en realizar las correcciones. Estas semanas estuve corriendo con un deploy que tuve que hacer en el laburo y no pude dedicarle el tiempo que queria revisarlo como lo amerita hasta hoy. Con respecto a los correcciones:
.gitignore
(se me escapo)
¡Buenas!
Te dejo nuestros comentarios:
/target
contiene archivos autogenerados (clases compiladas) y por tanto no debe ser subido al repositorio de código. Para resolver esto, deberías eliminarlo de git y luego agregarlo en el archivo.gitignore
Clima
... https://github.com/ealon2/dds/blob/91a19434dd1615a4697a047813530962e5ecf900/src/main/java/qmp/model/Clima.java#L3-L5 ... pero luego tiene un mensaje llamadogetWeather
que se traduce directamente como obtener clima, es decir que coloquialmente le estamos pidiendo el clima al clima. ¿Tiene sentido en español eso? Te propongo que renombres esta interfaz aServicioDeClima
,ServicioMetorologico
,Meteorólogo
, etc.@Mock
porque es un objeto fácil de crear y que no tiene dependencias externas.Services
yDAOs
https://github.com/ealon2/dds/blob/91a19434dd1615a4697a047813530962e5ecf900/src/main/java/qmp/dao/UsuarioDAO.java#L7. Te recomiendo no aplicar esas ideas (que en general agregan complejidad innecesaria) y a lo sumo si necesitamos un lugar donde tener todas las instancias de una clase, modelar un repositorio.AccuWeather
(el objeto nativo) es capaz de contener un objetoEstadoClima
, que es una abstracción de tu dominio, no del de AccuWeather. Esto en la realidad no sería posible: AccuWeather te dará otros objetos, y vos los tendrás que transformar y adaptar.atuendo.add(usuario)
? Un mensaje con nombre tan genérico comoadd
tendría sentido para por ejemplo una colección (cuya acción primaria es la de agregar y quitar cosas), pero no para un atuendo. Tenga o no tenga sentido esta responsabilidad en el Atuendo, casi con seguridad el mensaje está mal llamado.Atuendo
tiene unClima
, pero hasta éste es una dependencia global que obtenés a través de un singleton y que por tanto se podría utilizar en cualquier parte del sistema.Usuario
, que lejos de ser un concepto genérico y abstracto, es una entidad muy concreta en tu dominio.¡Saludos!