El jueves pasado inició la venta al público para el América - Cruz Azul, el clásico jóven. Siendo un partido al que tenía que ir y dado a que amenaza con estar lleno, mi mejor opción para conseguir boletos era el odiadio Ticketmaster. Una vez mentalizado en que me cobrarían más caro los boletos con cargos fantasma, abrí el sitio a la hora y me encontré con una sorpresa. Esta es una historia del triste estado de los sitios web en México.
Qué hacer? Le escribo a Ticketmaster para avisarles de su error? Cuántas horas —o días, semanas, meses— tardarán? Cómo conseguiré mis boletos después? Y si lo arreglo ahí mismo? Tomando la decisión de hacerlo yo mismo, pensé que si era un error sencillo no tendría que gastar mucho tiempo, pero si todo el script estaba mal hecho, probablemente no lo podría arreglar. Además, si el script está minificado o comprimido, se complicaría enormemente. Entonces empecé a rastrear el error. Para mi fortuna, el script no usaba ningún tipo de compresión, lo que me llevó inmediatamente a la parte conflicitiva:
Sin tener idea de qué pasaba, pongo un break point para que Firebug me avise cuando se esté ejecutando tal función, misma que se llama tres veces por alguna extraña razón, siendo la última la que detiene todo el proceso debido a que la variable no está definida:
El error sucede porque se le aplica una función a esta variable no definida, lo que no es válido y termina la ejecución por esta falla. En teoría, si pudiera definir esta variable (incluso con una cadena vacía), la función podría ejecutarse y seguir su curso normal, y si no hay más errores, llevarme a continuar la compra de mis boletos.
Así que accesé al objeto, encontré la variable y la definí:
Continué la ejecución y me llevó al siguiente paso que me dejó seguir el proceso normalmente hasta llevarme a imprimir los boletos.
Es una pena que esto suceda en la parte más importante de un negocio, la que debe estar probada hasta el más mínimo detalle. Imagínense cuánto podría perder Amazon con un error de estos. Y no espero perfección, es imposible, pero deberían existir métodos diseñados para capturar este tipo de fallas, reportarlas y arreglarlas rápidamente.
Después me di cuenta que si no seleccionaba mas que la cantidad de boletos a adquirir, el error no aparecía. Creo que la interfaz es demasiado complicada, añadiendo opciones para cada tipo de cliente, misma que podría ser mostrada en los pasos siguientes.
Si alguien siente que en México los sitios web están mal hechos, les invito ayudarnos a levantar la vara. Favor de contactarme.
En fin, el América hoy ganará, eliminará al Cruz Azul, calificará en segundo lugar y hará historia al ganar todos los clásicos en un mismo torneo. Y no digamos del campeonato.