SYSTEM ATLASЗагрузка материала

Закон протекающих абстракций

Law of Leaky Abstractions

Абстракции иногда раскрывают детали нижележащей реализации.

Простыми словами

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

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

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

Системный подход

Использовать «Закон протекающих абстракций» как гипотезу: сначала определить границы ситуации и исходное состояние, затем менять только то, что связано с проверяемым механизмом, и смотреть на результат.

Ограничения

Абстракции протекают не одинаково и не постоянно; цель не отказаться от абстракций, а понимать их границы и сохранять возможность диагностики нижнего уровня.

Источник

Joel Spolsky, “The Law of Leaky Abstractions”, 2002.

Первоисточник