Accidentes no fatales: Tasas aplastantes que importan | Por Bevin Steele | Rock Null | Enero de 2022
Casi todos los desarrolladores tienen algún tipo de monitoreo de fallas configurado para su aplicación. La métrica más común que monitorean para inferir el estado de la aplicación es la tasa de fallas.
Pero en una aplicación bien estructurada, tanto las excepciones recuperables como las irrecuperables se capturan y se muestran al usuario de una manera (con suerte) legible.En general, el patrón es manejar todas las excepciones conocidas y proporcionar un mensaje genérico para cualquiera que no espere (lea esto más sobre CoroutineExceptionHandler
):
val handler = CoroutineExceptionHandler { _, e ->
when (e) {
is ConnectionError -> showMessage("No internet")
is ExpectedBackendError -> showMessage("Wrong input")
else -> showMessage("Something went wrong")
}
}
Como usuario, apuesto a que te has encontrado con mensajes de error genéricos como Something went wrong, please try again later
Aparece cuando se trata de lograr algo. Bueno, es peor que un accidente en mi opinión. No puede hacer las cosas, la aplicación no falla, por lo que no está seguro de si es su culpa o si la aplicación está rota, y no hay nada procesable que hacer ( try later
las piezas casi nunca funcionan).
Por lo tanto, la tasa de fallas «verdadera» que busco al evaluar el estado de mi aplicación (por ejemplo, al decidir si aumentar el porcentaje de lanzamiento por etapas para una nueva versión) es esta tasa de fallas no fatales (o si lo prefiere, También puede ser tasa de choque silencioso). Esto muestra la experiencia real para el usuario, porque aunque la aplicación en realidad no falla, ejecuta una ruta de código «inesperada», probablemente la peor en la mayoría de los casos.
La mayoría de los SDK de informes de fallas populares admiten este tipo de fallas no fatales. Por ejemplo, con Crashalytics (¿probablemente el SDK más popular?) puede registrar fácilmente estas excepciones como esta (documento):
Firebase.crashlytics.recordException(e)
Así que siga monitoreando su aplicación en busca de bloqueos silenciosos. Con suerte, esto mejorará su experiencia de usuario, ya que sabrá si se produce un error inesperado y si se puede evitar en versiones futuras.
¡Feliz codificación!