Ich höre viel über diesen Begriff "Graceful Degradation".
Zum Beispiel ,
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
Der Begriff sieht für mich abstrakt aus. Gibt es ein konkretes Beispiel dafür, was es bedeutet?
terminology
Vinoth Kumar CM
quelle
quelle
Antworten:
Hier sind einige Beispiele:
quelle
Anwendungen mit einem "verschlechterten" Modus bieten im Allgemeinen aufgrund eines internen oder externen Problems Zugriff auf eine begrenzte Anzahl von Funktionen. Stellen Sie sich beispielsweise vor, Ihre Anwendung stellt eine Verbindung zu zwei verschiedenen Datenquellen her. Wenn einer dieser Fehler auftritt, kann er möglicherweise weiterhin ausgeführt werden, jedoch alle visuellen (oder / und Backend-) Funktionen deaktivieren, die sich auf die nicht verfügbare Ressource beziehen.
Konkretes Beispiel: Ihre Anwendung verfügt über zwei Datenquellen, in einer speichern Sie Personen, in der anderen speichern Sie Konten. Selbst wenn die Kontodatenbank ausfällt und die Anwendung einen verschlechterten Modus aufweist, sollten Sie in der Lage sein, neue Personen zu erstellen, obwohl Sie nicht mit ihren Konten interagieren.
In Bezug auf die Benutzeroberfläche bedeutet dies im Allgemeinen, dass Sie dem Benutzer klar anzeigen, dass einige Funktionen deaktiviert sind, und eine Warnmeldung anzeigen, damit er nicht im Dunkeln darüber gelassen wird, warum etwas nicht verfügbar ist.
Es gibt auch einen Wikipedia-Eintrag zu fehlertoleranten Systemen .
quelle
Mit dem technologischen Fortschritt haben wir immer Änderungen in einer Anwendung, die möglicherweise nicht immer von allen Zielgruppen unterstützt wird. In solchen Szenarien stoßen wir auf eine Graceful-Verschlechterung, die nachahmt, dass wir für das Beste arbeiten, das verfügbar ist, aber wir haben auch eine Ausfallsicherheit für diejenigen, die kein Upgrade durchgeführt haben oder deren System möglicherweise nicht unterstützt.
Ein wichtiges Beispiel ist das
<img>
Tag mit demalt
Attribut, das für Fälle hilfreich ist, in denen Bilder blockiert oder deaktiviert sind. Diese geben nun einen aussagekräftigen Kontext für die Bilder (natürlich nur, wenn wir dies angeben).Ein weiteres Beispiel, an das ich denken kann, sind Stylesheets für den Fall eines Fehlers oder einer Nichtverfügbarkeit. Der Browser bietet eine eigene generische Version zum Anzeigen / Anzeigen der Seite.
Wie Sie bereits erwähnt haben, müssen Sie einen Plan sorgfältig festlegen, was zu tun ist, wenn Ihre Treffer die Schwelle überschreiten. Sie deaktivieren bestimmte Funktionen oder setzen einige Dienste aus, die nicht kritisch sind, und geben Ihnen eine Verschnaufpause. All dies hilft Ihnen dabei, eine ordnungsgemäße Verschlechterung einzurichten, damit der Benutzer weiß, welche x Dinge der Server möglicherweise einige Zeit benötigt, um zu antworten, oder der x-Dienst für etwa eine Stunde nicht verfügbar wäre
quelle
Dies bedeutet, dass die Eingänge und der Zustand die Entwurfsgrenzen überschreiten und die Ausgänge so vernünftig und zuverlässig wie möglich bleiben.
Wenn es sich um einen Server handelt, der für 100 gleichzeitige Verbindungen ausgelegt ist, stürzt er nicht ab und liefert bei 101 oder sogar 150 Verbindungen keine verrückten Ergebnisse - er verlangsamt sich oder trennt möglicherweise einige Verbindungen, funktioniert aber größtenteils weiter. Wenn es sich um eine Datenbank handelt, die für die Verarbeitung von 1 Milliarde Datensätzen ausgelegt ist, verlangsamt sie sich nicht plötzlich auf einen unbrauchbaren Zustand von 1,01 Milliarden.
quelle
Wenn Sie kein grafisches System haben (wie kein X11-Server), sollte Ihr Programm mindestens eine CLI wie ncurses bereitstellen.
vi hat einen dummen Modus, in dem es sich wie ex verhält, wenn das Terminal zu wenige Funktionen hat.
quelle
Beim Erstellen von Webanwendungen kommt eine ordnungsgemäße Verschlechterung ins Spiel, wenn Ihre Website auf JavaScript oder Flash oder ähnlichen Techniken basiert, die der Benutzer nicht hat oder die er deaktiviert hat.
Dann sollten Sie weiterhin einige grundlegende Funktionen nur mit HTML oder zumindest eine Meldung bereitstellen, warum die Site nicht wie erwartet funktioniert.
quelle