1 - Clean Code / SOLID:
- Analizar la clase SongRepository. Explicar qué principios SOLID no se cumplen y por qué.
- Limpiar la clase SongRepository, implementar la solución de los problemas descritos anteriormente.
2 - Implementar los test que cubran los casos de la clase SongRepository.
3 - La arquitectura del proyecto, cumple con MVC? Justificar.
No se cumple porque no tiene 1 sola responsabilidad. No se cumple ni a nivel de clase ni a nivel de funcion, ya que tiene más de una responsabilidad.
La clase está accediendo a la caché, a la base de datos, al servicio de spotify, y a wikipedia.
A nivel de función no lo cumple porque no tiene el mismo nivel de abstracción
Se puede solucionar creando mas funciones, modularizar, aplicar clean code
La clase no cumple con este principio. Si queremos modificar un servicio, hay que modificar la clase. Y si quisieramos agregar otro servicio, tambien hay que modificar la clase.
Se puede solucionar implementando el patrón de diseño Broker
Este principio nos dice que las subclases deberian poder ser sustituidas por sus clases bases. En este caso, no tenemos subclases.
Este principio nos dice que es mejor tener muchas interfaces especificas, en vez de tener una sola de propósito general.
En este caso como no tenemos interfaces, no se aplica este principio.
Este principio nos dice que debemos depender de abstracciones y no de clases concretas.
En este caso, dependemos de spotifyTrackService y SpotifySqlDBImpl.