Неправильное API тоже работает, и им пользуются

Аватар автора
Ленинский Букварь
Закон Хайрама (Hyrum&Law) — эмпирическое наблюдение в программной инженерии, которое описывает сложность поддержки популярных API и интерфейсов 🧠 Назван в честь Хайрама Райта (Hyrum Wright), инженера Google ➡️ При достаточном количестве пользователей API неважно, что вы обещали в контракте: все наблюдаемые поведения вашей системы будут кем-то использоваться и от них будут зависеть ⁉️ В чём суть ⁉️ Когда разработчик создаёт API, он описывает контракт — документацию: метод принимает А, возвращает Б.Но помимо контракта у системы есть скрытые детали реализации: скорость ответа, порядок элементов, текст ошибки. Чем больше людей пользуются системой — тем выше вероятность, что кто-то начнёт полагаться на эти недокументированные особенности. И если вы их измените (даже не нарушив контракт) — код пользователей сломается. 💡 Примеры из жизни 💡 🔤Порядок в Hash Maps — контракт не гарантирует порядок элементов, но старые реализации случайно возвращали их в порядке добавления. Разработчики на это полагались — при смене алгоритма хеширования всё ломалось. 🔤Парсинг ошибок — API возвращает 404 с текстом «User not fond». Кто-то парсит именно эту строку. Исправили опечатку — скрипт сломался. 🔤Производительность как «фича» — функция работала медленно из-за бага, а пользователь использовал эту задержку как таймер. Ускорили функцию — получили ошибки многопоточности. 🗜Почему это важно? 🗜 Закон объясняет, почему в больших системах (Windows, Linux, ядро банковских систем) так трудно...

0/0


0/0

0/0

0/0

Скачать популярное видео

Популярное видео

0/0