Mejorar análisis y implementación de software de streaming de pelis

isvidal

Buenas tardes noches, me llego hace unas semanas un test para una empresa, incluía una práctica y un test de analisis, me dio pereza hacerla, pues no me apetecía hacer la parte práctica, pero me quedo la espinita de analizar y mejorar el modelo.

Lo pongo aqui para que gente con mucha más experiencia que yo pueda darme su punto de vista de los flaws del sistema y cómo mejorarlo y así de paso aprender.

Aquí os adjunto el ejercicio:

Se que no suelen haber hilos de este tipo por aquí, así que no se como sera la respuesta...

r2d2rigo

Cuantos NDAs te estas saltando posteando esto?

1 respuesta
Sleidom

Igual el test te lo enviaron ayer y quizás te lo estoy resolviendo xD Lo he hecho rapidillo y seguro que hay gente que tiene mejores soluciones que esta.

Problemas:
Si añadimos un nuevo tipo de Service, por ejemplo StreamingHDService tenemos que modificar el código de getTotal() con la posibilidad de error que eso implica...

Posible solucion:
Así rápido se me ocurre que podrias añadir una funcion getPrice() a las clases StreamingService y DownloadService que básicamente llamarían al getStreamingPrice() y al getDownloadPrice() de MultimediaContent respectivamente. Esta función también la tendría el padre de manera que desde RegisteredUser llamamos a getPrice() sea el tipo de Service que sea.

Además, MultimediaContent debería tener una función abstracta o que devuelva 0 que sea getPremiumPrice(), de manera que si estamos en un MultimediaContent, nos devolverá 0 y si estamos en un PremiumContent nos devolverá additionalFee.
Esta función será llamada por las funciones getStreamingPrice() y getDownloadPrice() y se sumará al resultado previo que ya tenían.

Ahora si añadimos el StreamingHDService, lo unico que tenemos que hacer es añadir cosas, pero no modificamos nada del código anterior (principio abierto-cerrado).

También hay otra(s) solución modificando la jerarquía de MultimediaContent.

1 respuesta
isvidal

#2 Ninguna, era una cadena de correos con un recruiter de terceros que me mandó varias pruebas de distintas empresas del mundo textil.

¿Aportaras alguna vez algo al foro que no sea comentarios de una frase dandotelas de listo?

#3 No soy tan rata, me lo mandaron hace semanas. Luego comento con mi aportación y discuto la tuya!

1 1 respuesta
r2d2rigo

#4 te lo puedes tomar como quieras, he hecho demasiadas pruebas tecnicas y lo primero en lo que hacen hincapie es que JAMAS las compartas porque daria ventaja a los que vengan por detras tuyo, pero que sabre yo ¯\(ツ)

Pero vamos, googleando un poco resulta que es una practica de una asignatura de la UOC que alguien subio con anterioridad: https://www.studocu.com/ca-es/document/universitat-oberta-de-catalunya/analisis-y-diseno-con-patrones/practica/adp-prac1-solucion-analisis-y-diseno-de-patrones-practica-1-20182019/4531373/view

Si la empresa a la que has intentado entrar no es capaz ni de redactar su propia prueba tecnica, de buena te has librado.

2

Usuarios habituales

  • r2d2rigo
  • isvidal
  • Sleidom