[Важное дополнение. Ослабление предусловий]
Одни пропагандируют и рекомендуют "ослаблять предусловия и усиливать постусловия" (закон Постело), другие с таким же успехом критикуют и пишут что так делать нельзя.
1) "Марсианские наушники" Джоэла Спольски (2008) (перевод на habr)
На мой взгляд это не прямая критика, а иллюстрация системной проблемы. Спольски показывает, что когда в экосистеме "многие-ко-многим" (много разработчиков браузеров и много сайтов) все следуют принципу "будь либерален в том, что принимаешь", но интерпретируют его по-разному из-за неточных спецификаций, это приводит к хаосу. Стандартом де-факто становятся баги и хаки самого популярного участника (в статье - IE6), что тормозит развитие всей сети. Это критика бесконтрольного применения закона.
Обращаю внимание на год статьи и на уточнение модели "многие-ко-многим".
2) Майкл Т. Нигард, "Release It!" (2007)
Нигард утверждает, что попытки быть "либеральным" и обработать любые ошибочные данные часто приводят к тому, что система переходит в некорректное или деградировавшее состояние, а потом падает в гораздо более сложном для диагностики месте. Гораздо надёжнее быстро и явно отказать при первом же нарушении контракта (например, при получении невалидного сообщения), чем пытаться его "понять и починить". Это повышает наблюдаемость и упрощает восстановление.
3) Статья "The Harmful Consequences of the Postel Prescription" (Вредные последствия предписания Постела)
Это прямая критика. Автор утверждает, что принцип Постела был ошибочным с самого начала для протоколов, где есть несколько независимых реализаций (тот самый "рынок многие-ко-многим").
Что в итоге?
Прочитав критику, хочется подумать что это очередная тема для холивара. Но данная критика однозначно достойна внимания. И помнить об этом точно нужно.
Post #649
223
- 👀 4
- 👍 2