-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug por visibilidad de métodos entre ejercicios 5 y 6 #1
Comments
Sí, esto definitivamente. Hoy la única forma de resolver esto sería usando reflection en el test. Si te animás a mandarte un PR, bienvenidísimo!
Sí, mas bien se trata de un known issue con el que por ahora hemos decidido "convivir". Quizás en el futuro eliminemos esa caché definitivamente. |
@NadiaFinzi esto es justo lo que hoy hablábamos. Otro ejercicio para revisar si queremos que mantenga referencias al código previo. |
No prometo nada, pero si me tirás algún centro sobre por dónde podría mirar para inspirarme, quizá eventualmente pueda hacer algún intento. Ahora, así, en el aire, sería tres bandas de esfuerzo para empezar a ver qué tocar.
¿Hacer que la key de esa cache dependa también de la Biblioteca no es una opción? Estimo que en algún lado estarán hasheando el código, habría que sumarle un hash de la Biblioteca (que en la mayoría de los otros ejercicios sería constante, así que funcionaría igual que ahora). |
¡Ahhhhhhh! Ahí entendí: decís que modifique el Buen, tengo una punta ya. Veré qué onda. |
👋 ¡Hola! :)
Esta solución del ejercicio 5 de la guía (el de
JugoSimple
) está, en lo que a la lección respecta, joyita.Pero hay dos problemas cuando pasamos al ejercicio 5 con esa solución.
El primero es que, al hacer la solución "correcta" del ejercicio 6, falla por problemas de visibilidad de métodos:
¡Ups! Tu solución no se puede ejecutar
Problemas que encontramos:
El método
jugo()
en la claseManzana
debería ser público. Revisá si tiene la visibilidad correcta cerca deint jugo() { return 80; }
.Detalles
En el ejercicio 5 funcionaba todo bien porque a los miembros de
Fruta
los usaJugoSimple
, que está definido en el mismo archivo. Pero acá parece que se mueve a un archivo separado (el de la Biblioteca), y entonces ahora sí necesita sí o sí que los métodos seanpublic
. Para que el ejercicio 6 funcione, hay que tener esta solución en el Ejercicio 5.Para peor, el problema no está en el código de la solución de este ejercicio, si no del anterior. Hay que darse cuenta de ir a corregir en el ejercicio anterior cosas que antes andaban joya, pero ahora ya no sirven tanto (y encima es un problema de visibilidad, que entiendo que medio que no es el foco del ejercicio, ni es algo a lo que se le de mucha importancia a lo largo de la lección).
Por último, la frutilla del postre es que, si te diste cuenta de que tenías que ir al ejercicio anterior a corregir algo, lo cambiás allá, volvés al ejercicio 6 y le volvés a dar
Enviar
(porque tu solución estaba bien), Mumuki ve que el código de la solución que mandás es el mismo que ya habías mandado, y entonces no vuelve a procesarlo. Es decir, tiene cacheado el Envío, pero cambiar la Biblioteca (que modifica el resultado del ejercicio) no invalida esa cache - y debería.Como propuestas de solución, agregaría algún aviso en el Ejercicio 5 reforzando que los métodos tienen que ser
public
para evitar problemas con el ejercicio siguiente (y, de ser posible, le agregaría validaciones al ejercicio para chequear que los métodos de la solución efectivamente sean públicos). Eso, y/o agregar una nota en el Ejercicio 6 recordando que "si tenés problemas de visibilidad de métodos, revisá de vuelta el código del ejercicio anterior".Lo de la cache lo considero un bug de Mumuki (de la plataforma), ¿no?
PD: La radio está buenísima. Ojalá lo sepan, pero en vez de confiar en que lo sepan, vengo a asegurárselos. Gracias, miles ❤️
The text was updated successfully, but these errors were encountered: