lunes, octubre 17, 2022

Google Blogger: Conectividad, Usabilidad y situaciones de DeadLock

Los que me conocéis ya sabéis que soy un nómada digital en toda regla. Trabajo desde cualquier sitio con total normalidad. No me importa mientras tenga una conexión a Internet que me conecte a la red, y pueda hacer todas mis tareas. Y una de las tareas que más hago es publicar mi artículo. Lo hago todos los días - o casi, casi, casi todos -. No importa dónde esté. No importa el país del mundo donde ande.

Figura 1: Google Blogger: Conectividad, Usabilidad y situaciones de DeadLock

Esto me ha llevado a encontrarme con innumerables situaciones con las herramientas que utilizo que ya le hubiera gustado a un QA poder probar, y por tanto, me encuentro con fallos que son muy difíciles de encontrar. Entre otros, aquellos en los que la conectividad es pieza clave del escenario de evaluación, como el que os voy a contar ahora mismo.

Blogger, y los cuadros de diálogo bloqueantes

Desde que en el año 2006 comencé a escribir "Un informático en el lado del mal", he utilizado siempre la plataforma de Blogger de Google. La he visto crecer, la he visto detenerse, y la veo hoy en día en modo "mantenimiento" donde no hay mucha inversión en ella desde la última actualización.

Una de las cosas que me mata de ella, es un Bug de Usabilidad y Pérdida de Trabajo que tienen los cuadros de diálogos bloqueantes del interfaz de edición de artículos. Estos cuadros de diálogo los utilizan para, por ejemplo, subir contenido multimedia - imágenes, vídeos, etc... - al artículo o para, simplemente, poner un hipervínculo.

Cuando está el cuadro de diálogo bloqueante, no puedes interactuar con ninguna parte del interfaz de usuario que no sea un componente de ese cuadro de diálogo. Así que, si quieres "Guardar cambios", o "Publicar" no puedes hacerlo, porque esos controles están fuera del cuadro de diálogo.

Supongo que esto tiene cierta lógica dentro de la cabeza del responsable de producto, ya que lo que desea es que esa función se acabe para pasar al siguiente punto del flujo de la lógica de ese caso de uso. No debería pasar nada con ese cuadro de diálogo, porque el usuario siempre puede hacer clic en la X, dar a la tecla ESC y cerrar el cuadro de diálogo, volviendo al flujo del caso de uso anterior.

Pero, por desgracia, durante el tiempo que está produciéndose la carga de los componentes de esos cuadro de diálogo bloqueante puede pasar cualquier cosa. Así que, si el componente del cuadro de diálogo carga en último lugar el componente del botón cerrar (la X), puede darse una condición de carrera muy desagradable y no habrá forma de llegar a los controles de "Guardar Cambios" o "Publicar", y te quedas, literalmente, colgado de la brocha. 

Figura 2: Cuadro bloqueante de "Añadir Imágenes"

En estos casos, algo que me ha pasado a mí en muchas situaciones de conectividad inestable, culpa de mi vida de nómada digital -, puede suceder que se inicialice el cuadro de diálogo bloqueante, haya un corte con la conectividad y la carga de sus componentes no se completa, se puede dar una desagradable situación como la que me sucede muchas veces en Blogger.

Figura 3: Configurar un enlace. Cuando lo escribes, se activa "APLICAR"

Otro que me destroza se produce con el cuadro de diálogo de configurar un enlace. En este caso, el botón "Aplicar" se produce después de que se ha lanza un evento que comprueba que has puesto un valor en el cuadro de texto donde debe ir el enlace, como se ve en la imagen anterior. Pero si se corta la conectividad y no carga completamente el código del botón "Aplicar", se da el caso como el que veis aquí, donde el botón Aplicar no se activa. Da igual que regrese la conectividad a tu equipo, si no carga en ese instante, estás en Interbloqueo (DeadLock).

Figura 4: Un deadlock por perdida de conectividad temporal poniendo un enlace.

En cualquiera de estas dos situaciones, por no contemplar las situaciones de pérdida de conectividad temporal en "el peor momento", se produce un bug de usuabilidad que lleva a la pérdida del trabajo del usuario.

Menos mal que me conozco bien las "Developer Tools" y cuando esto me pasa me voy al inspector de código y salvo los cambios no salvados haciendo un poco de trabajo manual con el HTML del cliente web de Blogger que tienes cargado, pero es un bug grande solo por no pensar que, tal vez, el primer componente que debes cargar de un cuadro de diálogo bloqueante es el de poder Cerrar.

Por supuesto, hay otras soluciones, pero este comportamiento que tiene Blogger no es bueno, ya que provoca perdida de datos por no poder salvar los cambios. Y no hay forma de salir, estás en un interbloqueo de libro. Avisados estáis.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario