Dużo słyszę o tym określeniu „pełna wdzięku degradacja”.
Na przykład ,
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
Termin ten wydaje mi się czymś abstrakcyjnym. Jakiś konkretny przykład tego, co to znaczy?
terminology
Vinoth Kumar CM
źródło
źródło
Odpowiedzi:
Oto kilka przykładów:
źródło
Aplikacje z trybem „zdegradowanym” zazwyczaj oferują dostęp do ograniczonego zestawu funkcji z powodu problemu wewnętrznego lub zewnętrznego. Wyobraź sobie na przykład, że Twoja aplikacja łączy się z dwoma różnymi źródłami danych. Jeśli jedna z tych awarii zawiedzie, nadal może być możliwe kontynuowanie działania, ale wyłączenie wszystkich funkcji wizualnych (lub / i backendowych) związanych z niedostępnym zasobem.
Konkretny przykład: Twoja aplikacja ma dwa źródła danych, w jednym przechowujesz osoby, w drugim przechowujesz konta. Nawet jeśli baza danych kont ulegnie awarii, jeśli aplikacja działa w trybie awaryjnym, nadal można tworzyć nowe osoby, aczkolwiek nie należy wchodzić w interakcje z ich kontami.
Jeśli chodzi o interfejs użytkownika, oznacza to ogólnie, że wyraźnie wskazujesz użytkownikowi, że niektóre funkcje są wyłączone, i wyświetlasz komunikat ostrzegawczy, aby nie został pominięty w ciemności, dlaczego coś jest niedostępne.
Istnieje również wpis w Wikipedii dotyczący systemów odpornych na uszkodzenia .
źródło
Wraz z rozwojem technologii zawsze wprowadzamy zmiany w aplikacji, która przez cały czas może nie być obsługiwana przez wszystkich docelowych odbiorców. W takich scenariuszach napotykamy degradację Graceful, która emuluje, że budujemy dla najlepszych dostępnych, ale mamy również bezpieczny dla tych, którzy nie dokonali aktualizacji lub ich system może nie obsługiwać.
Jednym z głównych przykładów jest
<img>
znacznik, który maalt
atrybut pomocny w przypadkach, w których obrazy są blokowane lub wyłączone, teraz dają one znaczący kontekst dla obrazów (oczywiście tylko jeśli określimy).Kolejny przykład, jaki mogę wymyślić, to arkusze stylów w przypadku błędu lub niedostępności, przeglądarka zapewnia własną wersję ogólną do wyświetlania / wyświetlania strony.
Teraz, gdy wspomniałeś o dużym obciążeniu, musisz ostrożnie opracować plan, co należy zrobić, jeśli trafienia przekroczą próg, wyłączysz niektóre funkcje lub zawiesisz niektóre usługi, które nie są krytyczne i dadzą ci spokój. Wszystko to pomoże Ci skonfigurować płynną degradację, aby użytkownik wiedział, że x rzeczy, na które serwer może zająć trochę czasu, aby odpowiedzieć lub usługa x byłaby niedostępna przez około godzinę
źródło
Oznacza to, że gdy wejścia i stan przekraczają granice projektowe, wyjścia pozostają tak rozsądne i niezawodne, jak to możliwe.
Jeśli jest to serwer zaprojektowany do obsługi 100 równoczesnych połączeń, nie zawiesza się ani nie zaczyna zwracać szalonych wyników przy 101, a nawet 150 połączeniach - spowalnia lub może zrywa kilka połączeń, ale nadal działa. Jeśli jest to baza danych zaprojektowana do obsługi 1 miliarda rekordów, nie spowalnia nagle do bezużytecznego stanu na poziomie 1,01 miliarda.
źródło
Jeśli nie masz systemu graficznego (jak nie działa serwer X11), twój program powinien przynajmniej dostarczyć CLI, jak ncurses.
vi ma głupi tryb, w którym zachowuje się jak ex, jeśli terminal ma zbyt mało funkcji.
źródło
Podczas tworzenia aplikacji internetowych w grę wchodzi wdzięczna degradacja, gdy witryna korzysta z JavaScript lub Flasha lub podobnych technik, których użytkownik nie ma lub nie ma wyłączonych.
Następnie powinieneś nadal zapewniać podstawową funkcjonalność tylko w języku HTML lub przynajmniej komunikat, dlaczego strona nie działa zgodnie z oczekiwaniami.
źródło