що таке «витончена деградація»?


11

Я багато чую про цей термін «Витончена деградація».

Наприклад ,

 "An application server should gracefully degrage when it is under heavy load "

  "Graceful degradation of user interfaces.... "

Термін для мене виглядає як абстрактна річ. Будь-який конкретний приклад того, що це означає?


5
Хороша стаття на тему codinghorror.com/blog/2011/04/…
JF Dion

Відповіді:


10

Ось кілька прикладів:

  • Якщо у вас не вистачає ресурсів (ручки, розетки, пам’ять, місця на диску), ви не збиваєтеся, але, швидше, ви продовжуєте обслуговувати стільки користувачів, скільки зможете обслуговувати наявними ресурсами. Щось, що не погіршиться, може просто перестати працювати, коли виноситься поза конвертів дизайну.
  • Під навантаженням важчим, ніж те, що ви розробили для користувачів, буде реагувати повільніше, ніж те, що ви створили. Без витонченої деградації перешкоджання роботі системи після перевищення вимог може бути прийнятним.
  • Умови помилок, такі як відмова дискового накопичувача, збій в ядрі процесора, збій у пам'яті. Система, призначена для вишуканої деградації, може продовжувати працювати в деякому зменшеному режимі (наприклад, не маючи доступу до даних на вийшов з ладу диск, але все ж доставляє дані з диска, який не вийшов з ладу), а інший просто вийде з ладу.

5

Програми, які мають "деградований" режим, як правило, пропонують доступ до обмеженого набору функцій через внутрішню чи зовнішню проблему. Наприклад, уявіть, що ваша програма підключається до двох різних джерел даних. Якщо одна з цих помилок не вдасться, вона все ще може бути продовжена, але вимкнути всі візуальні (або / та допоміжні) функції, пов'язані з недоступним ресурсом.

Конкретний приклад: у вашому додатку є два джерела даних, в одному з них ви зберігаєте осіб, в іншому ви зберігаєте облікові записи. Навіть якщо база даних облікових записів виходить з ладу, якщо програма має деградований режим, ви все одно зможете створювати нових людей, хоча і не взаємодіяти з їх обліковими записами.

Що стосується користувальницького інтерфейсу, це, як правило, означає, що ви чітко вказуєте користувачеві, що деякі функції вимкнено, і показуєте якесь попереджувальне повідомлення, щоб він не залишався в темряві, чому щось недоступне.

Також є запис у Вікіпедії, пов’язаний з відмовними системами .


2

З розвитком технологій у нас завжди з’являються зміни, що перетворюються на додаток, який може не підтримуватися всіма цільовими аудиторіями. У таких сценаріях ми стикаємося з витонченою деградацією, яка наслідує те, що ми створюємо найкраще, але у нас також є безпечний збій для тих, хто не оновив або їх система може не підтримувати.

Одним з основних прикладів є <img>тег, який має altатрибут, який корисний у випадках, коли зображення заблоковані або вимкнено, тепер вони дають певний змістовний контекст для зображень (звичайно, лише якщо ми вкажемо).

Ну і інший приклад, про який я можу придумати, - це таблиці стилів у разі помилки чи недоступності браузер надає загальну власну версію для показу / відображення сторінки.

Тепер, коли ви вже згадували про велике навантаження, вам потрібно ретельно скласти план, як робити, якщо ваші хіти виходять за межу порогу, ви вимкнете певні функції або призупините деякі сервіси, які не є критичними, і ви зможете передихати. Все це допоможе вам налаштувати вишукану деградацію, щоб користувач знав, через х речі, на які сервер може зайняти деякий час, щоб відповісти, або служба x буде недоступною протягом години


1

Це означає, що коли входи та стан перевищують проектні межі, результати залишаються максимально розумними та надійними.

Якщо це сервер, призначений для обробки 100 одночасних з'єднань, він не виходить з ладу і не починає повертати шалені результати при 101 або навіть 150 підключеннях - він сповільнює або, можливо, припиняє кілька підключень, але продовжує працювати в основному. Якщо це база даних, призначена для обробки 1 мільярда записів, вона несподівано сповільнюється до непридатного стану на рівні 1,01 мільярда.


1

Якщо у вас немає графічної системи (наприклад, не працює сервер X11), ваша програма повинна принаймні надати CLI, як ncurses.

vi має німий режим, в якому він поводиться як колишній, якщо термінал має занадто мало функцій.


1

При створенні веб-додатків граціозна деградація відтворюється, коли ваш веб-сайт покладається на JavaScript або Flash або подібні методи, яких у користувача немає або вимкнено.

Тоді вам слід надати деякі основні функціональні можливості лише з HTML або принаймні повідомлення, чому сайт не функціонує так, як очікувалося.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.