METABYTE
К списку статей

Out of the Tar Pit: как 18 лет назад нам сказали, что главная проблема софта — это сложность, но мы не послушали

Культовая статья 2006 года объясняет, почему ваш проект напоминает болото из смолы, и предлагает спасательный круг — но кто же его слушает?

15 мая 20262 мин чтения
Out of the Tar Pit: как 18 лет назад нам сказали, что главная проблема софта — это сложность, но мы не послушали

В 2006 году, когда айфоны ещё не родились, а Agile был младенцем, Бен Мозли и Питер Маркс опубликовали работу, которая должна была стать библией разработчика. «Out of the Tar Pit» — это не про динозавров, а про то, как мы сами закапываем свои проекты в болото сложности.

Авторы провели вскрытие типичного софтверного проекта и нашли труп: причина смерти — «accidental complexity», то есть сложность, которую мы сами себе придумали. Вы когда-нибудь пытались разобраться в коде, написанном «на скорую руку» три года назад? Вот это оно. Мозли и Маркс утверждают, что единственный способ выбраться из ямы — это свести сложность к минимуму, используя функциональное программирование и простые языки.

Конечно, прошло 18 лет, мы получили Kubernetes, микросервисы и 47 слоёв абстракции. Видимо, статью прочитали, но решили: «А давайте-ка сделаем наоборот». И теперь мы тонем в YAML-файлах, как в смоляной яме.

Что предлагали авторы?

  • Убрать побочные эффекты (да, никаких мутаций).
  • Избавиться от явного управления состоянием.
  • Использовать декларативные спецификации.

Звучит как рай для разработчика, правда? Но вместо этого мы получили Redux, который сам по себе — целая вселенная сложности.

Комментарий студии METABYTE: Мы тоже читали эту статью и решили, что сложность — это не норма. Наши проекты строятся так, чтобы код был понятен даже через год, а не как «IKEA без инструкции». Хотя иногда хочется добавить пару слоёв абстракции — просто чтобы почувствовать себя архитектором.

СЛЕДУЮЩИЙ ШАГ

Понравилось как мыслим?

Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.