Дизайн по контракту и быстро сбой

Неудача быстро -

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

Дизайн по контракту -

Дизайн по контракту (DbC), также известный как контрактное программирование, программирование по контракту и программирование по контракту, - это подход к разработке программного обеспечения. Он предписывает разработчикам программного обеспечения определять формальные, точные и проверяемые спецификации интерфейсов для компонентов программного обеспечения, которые расширяют обычное определение абстрактных типов данных предварительными условиями, постусловиями и инвариантами. Эти спецификации называются «контрактами» в соответствии с концептуальной метафорой условий и обязательств деловых контрактов.

У меня вопрос, в чем сходство и различие в обоих терминах. Я думаю, что оба предназначены для разработки программного обеспечения.

Быстрый отказ - это скорее реакция на сбой системы, а проектирование по контракту - это скорее гарантия, минимум и ожидание системы.

Но как мне на самом деле определить разницу между ними и их сходство?

Спасибо за помощь .!


person user2648176    schedule 03.08.2013    source источник


Ответы (2)


Они исключают друг друга. Итератор Java быстро выходит из строя, но также разрабатывается по контракту. Неудача быстро означает просто бомба в надежде, что ничего хуже не произойдет (например, выбросить исключение). В то время как что-то вроде отказоустойчивости обычно означает, что когда случается отказ, убедитесь, что ничего хуже не происходит. Вы можете сделать это, изолировав системные компоненты или имея что-то, что будет обрабатывать случай сбоя, чтобы ничего плохого не произошло (например, репликация сеанса / переключение при отказе)

person More Than Five    schedule 09.02.2015

Сходства:

  • Оба могут быть реализованы с помощью утверждений
  • Оба являются неотъемлемой частью конструкции XML.

Отличия:

  • Дизайн по контракту не обрабатывает неожиданные ошибки
  • Fail fast не обрабатывает избыточные проверки
  • Дизайн по контракту не справляется с плохими требованиями
  • Fail fast не поддерживает отображение требований

Ссылки

person Community    schedule 29.08.2013