Escucho mucho sobre este término "degradación agraciada".
Por ejemplo ,
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
El término me parece algo abstracto. ¿Algún ejemplo concreto de lo que significa?
terminology
Vinoth Kumar CM
fuente
fuente
Respuestas:
Aquí hay unos ejemplos:
fuente
Las aplicaciones que tienen un modo "degradado" generalmente ofrecen acceso a un conjunto limitado de funciones debido a un problema interno o externo. Por ejemplo, imagine que su aplicación se conecta a dos fuentes de datos diferentes. Si uno de estos falla, aún podría ser posible que continúe ejecutándose, pero deshabilite todas las características visuales (y / o de fondo) relacionadas con el recurso no disponible.
Ejemplo concreto: su aplicación tiene dos fuentes de datos, en una de ellas almacena personas, en la otra almacena cuentas. Incluso si la base de datos de la cuenta falla, si la aplicación tiene un modo degradado, aún debería ser capaz de crear nuevas personas, aunque no interactúe con sus cuentas.
En cuanto a la interfaz de usuario, esto generalmente significa que usted le indica claramente al usuario que algunas funciones están deshabilitadas, y muestra un mensaje de advertencia para que no se quede en la oscuridad por qué algo no está disponible.
Además, hay una entrada de Wikipedia relacionada con los sistemas tolerantes a fallas .
fuente
Con el avance de la tecnología, siempre tenemos cambios en una aplicación que en todo momento puede no ser compatible con todos los públicos objetivo. En tales escenarios, nos encontramos con una degradación elegante que emula que construimos para el mejor disponible, pero también tenemos una protección contra fallas para aquellos que no han actualizado o su sistema podría no ser compatible.
Un ejemplo importante es la
<img>
etiqueta que tiene elalt
atributo que es útil para los casos en que las imágenes están bloqueadas o apagadas, ahora dan un contexto significativo para las imágenes (por supuesto, solo si lo especificamos).Bueno, otro ejemplo que se me ocurre son las hojas de estilo en caso de error o falta de disponibilidad, el navegador proporciona una versión genérica propia para mostrar / mostrar la página.
Ahora, como mencionó la carga pesada, debe trazar cuidadosamente un plan, ya que lo que se debe hacer si sus golpes disparan más allá del umbral, deshabilita ciertas funciones o suspende algunos servicios que no son críticos y le da un respiro. Todo esto lo ayudará a configurar una degradación elegante para que el usuario sepa debido a las cosas x que el servidor puede tardar un tiempo en responder o el servicio x no estará disponible durante una hora más o menos
fuente
Significa que a medida que las entradas y el estado exceden los límites de diseño, las salidas siguen siendo lo más razonables y confiables posible.
Si se trata de un servidor diseñado para manejar 100 conexiones simultáneas, no se bloquea ni comienza a devolver resultados locos en 101 o incluso 150 conexiones: se ralentiza o tal vez deja caer algunas conexiones, pero sigue funcionando principalmente. Si se trata de una base de datos diseñada para manejar mil millones de registros, no se desacelera repentinamente a un estado inutilizable de 1.01 mil millones.
fuente
Si no tiene un sistema gráfico (como ningún servidor X11 en ejecución), su programa debería proporcionar al menos una CLI, como ncurses.
vi tiene un modo tonto en el que se comporta como ex, si el terminal tiene muy pocas características.
fuente
Al crear aplicaciones web, la degradación elegante entra en juego cuando su sitio se basa en JavaScript o Flash o en técnicas similares que el usuario no tiene o deshabilita.
Entonces aún debe proporcionar alguna funcionalidad básica solo con HTML o al menos un mensaje de por qué el sitio no funciona como se esperaba.
fuente