TP1-G8

Resultado: Aprobado.

- Bien el uso y configuracion de Log4j y el xml! Muy bien el uso de los niveles de log.

- Correcta la configuracion de maven.

- Javadoc muy bien y completo.


- Si bien presentaron el diagrama de clases, estaria bueno que puedan detallar las decisiones de diseño que tomaron, porque la herencia de UsuarioAdmin, la clase Subscripcion,  porque usar boolean en vez de exceptions, etc.
En el caso de subscripcion no queda muy claro. Cual es la responsabilidad de Subscripcion?
Si se maneja como estado interno del Usuario y el Evento, que los llevo a a tomar la decision de modelarlo como objeto?

- Metodos equals() y hashcode():
Tanto en #Usuario como en 
#Evento no estan presentes y son usados desde Subscripcion.
Es importante que esten redefinidos, ya que ambos tienen un estado relevante para el sistema.


TESTS
- El test testConsultarUsuariosRegistradosAEvento() no es correcto. Antes de testear la cantidad de usuarios que subscriben, deberian crear lo usuarios, luego registgrarlos, y recien ahi controlar que esten subscriptos.
No hace falta que sean tantos usuarios, alcanza con 2 o 3.
- Idem para testConsultarEventosSuscriptos()
- Idem testAsistencia()


- #UsuarioAdmin
Por que una subclase? 
Cuales son las limitaciones que aparecen al modelarlo de esta manera?

- #EventoEstado
Muy buena la idea de manejarlo con un State.
validarSuscripcion()
Segun el nombre del metodo, si la "subscripcion" es valida, deja pasar y sino deberia lanzar una exception
Esto haria que el Evento.subscribir() lance exceptions.
Y que pasa si Usuario.subscribir() lanza exception??
Idem validarCancelacion()

Esto me lleva a que para casos como este, no usaron exceptions!
Distinto es el el metodo estaSuscripto() donde claramente responde por true o false.

- #Estado.validarSubscripcion()
Si valida una subscripcion, porque no recibe una Subscripcion? Eso no lleva a que una Subscripcion no es un concepto demasiado fuerte como para modelarlo como un objeto?
De modelarlo y empezar a jugar con su estado, encotramos que es mas complejo de lo que tenemos y volvemos a la pregunta, me interesa modelar si al momento de crearla es valida o no? Es responsabilidad de si misma el hecho de validarse? Y si no es valida?

- #Subscripcion
Ya les comente en otras secciones sobre esta clase, pero por ultimo, fijense que es la unica clase en la que no pusieron claramente su responsabilidad.

Comments