Hace 15 años | Por zilog2008 a aeroxp.org
Publicado hace 15 años por zilog2008 a aeroxp.org

En este artículo (en inglés) se detalla la solución correcta al bug del zune (no basta el "if (days >= 366)" que se ha leido por aquí). Un estudio del motivo y de varias posibles soluciones CORRECTAS, ya sea usando un "break" extra, o una sentencia adicional con el operador condicional (?), llegando a reducir el fragmento original incluso a apenas 5 líneas de código. Interesante para cualquier aficionado a la programación.

Comentarios

D

Me ha encantado leer el artículo. Está muy bien detallado, y muestra mejoras al algoritmo original, incluso teniendo en cuenta el rendimiento del código resultante. Muy didáctico.

"It’s questionable whether or not this code is any better than the original solution with the break, but this would be the “proper” way to do it (instead of using an arbitrary break in your code). It’s also easier to understand if you know C"

Es para mi extraño leer ese párrafo en el que primero cuestiona que el algoritmo parcheado con break sea peor, para despues señalar lo que es evidente: que el algoritmo propuesto al final es mas coherente, legible, y está mejor planteado desde el principio. Para mí son suficientes ventajas para considerarlo mejor. Es posible que a nivel de ejecución de código sean comparables, pero a nivel de mantenimiento y legibilidad no.

Saludos

D

Pero acerté en que el fallo se debió a una mala implementación de los años bisiestos. Y sin tener el código fuente delante.

z

Para #1: no era una crítica a ninguno de los comentarios originales, sino la intención de completar la información con otro artículo muy detallado.