Быстро - Fail-fast

В проектирование систем, а безотказный Система - это система, которая немедленно сообщает на своем интерфейсе о любом состоянии, которое может указывать на сбой. Отказоустойчивые системы обычно предназначены для остановки нормальной работы, а не для попытки продолжить возможно некорректный процесс. Такие конструкции часто проверяют состояние системы на нескольких этапах работы, поэтому любые сбои можно обнаружить на ранней стадии. Ответственность за отказоустойчивый модуль заключается в обнаружении ошибок, а затем в предоставлении возможности их обрабатывать следующему, более высокому уровню системы.

Железо и софт

Отказоустойчивые системы или модули желательны в нескольких случаях:

  • При строительстве отказоустойчивая система с помощью избыточных компонентов отдельные компоненты должны работать безотказно, чтобы предоставить системе достаточно информации, чтобы успешно выдержать отказ.
  • Отказоустойчивые компоненты часто используются в ситуациях, когда отказ одного компонента может быть незаметен до тех пор, пока он не приведет к отказу другого компонента.
  • В отказоустойчивой системе легче найти причину отказа, потому что система сообщает об отказе как можно больше информации, максимально приближенной к моменту отказа. В отказоустойчивой системе отказ может остаться незамеченным, тогда как в системе, которая не является ни отказоустойчивой, ни отказоустойчивой, отказ может быть временно скрыт, пока он не вызовет позже некоторую, казалось бы, не связанную проблему.
  • Отказоустойчивая система, которая предназначена для остановки, а также для сообщения об ошибке при отказе, с меньшей вероятностью выполнит ошибочно необратимую или дорогостоящую операцию.

Разработчики также называют код отказоустойчивым, если он пытается выйти из строя как можно скорее при инициализации переменной или объекта. В объектно-ориентированного программирования, быстро спроектированный объект инициализирует внутреннее состояние объекта в конструкторе, вызывая исключение, если что-то не так (в отличие от разрешения неинициализированных или частично инициализированных объектов, которые позже завершатся ошибкой из-за неправильного «установщика»). Затем объект можно сделать неизменный если больше не ожидается изменений внутреннего состояния. В функциях аварийный код будет проверять входные параметры в предварительное условие. В клиент-серверных архитектурах функция fail-fast будет проверять клиентский запрос сразу по прибытии, прежде чем обрабатывать или перенаправлять его другим внутренним компонентам, возвращая ошибку, если запрос не выполняется (неверные параметры, ...). Разработанный без сбоев код уменьшает внутреннее программная энтропия, и снижает трудозатраты на отладку.

Примеры

Из области программная инженерия, а Fail Fast Iterator является итератор который пытается вызвать ошибку, если последовательность элементов, обрабатываемых итератором, изменяется во время итерация.

Бизнес

Этот термин широко использовался как метафора в бизнесе, начиная как минимум с 2001 года.[1] Это означает, что предприятия должны проводить смелые эксперименты для определения долгосрочной жизнеспособности продукта или стратегии, а не действовать осторожно и тратить годы на обреченный подход. Это стало своего рода «мантрой» внутри запускать культура.[2]

Смотрите также

Рекомендации

  1. ^ Кханна, Раджат; Гулер, Исин; Неркар, Атул (01.04.2016). «Часто терпят неудачу, терпят крупную неудачу и быстро терпят неудачу? Уроки мелких неудач и результаты исследований и разработок в фармацевтической промышленности». Журнал Академии Менеджмента. 59 (2): 436–459. Дои:10.5465 / amj.2013.1109. ISSN  0001-4273.
  2. ^ «Эпические провалы мира стартапов». Житель Нью-Йорка. Получено 2017-08-14.

внешняя ссылка