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

Откуда взялся культ чистого кода

Роберт Мартин написал «Clean Code» в 2008 году. Книга изменила индустрию. В хорошем смысле. Мы стали думать о читаемости, о понятных именах переменных, о единой ответственности. Это важно. Но любая хорошая идея, доведённая до абсолюта, становится ядом.

Появился культ: чистый код — это добро, грязный код — это зло. И если ты пишешь «некрасиво» — ты плохой инженер. Такой картиной мира удобно мерить людей. Удобно объяснять, почему чужой код хуже твоего. Удобно чувствовать себя профессионалом, даже если продукт не продаётся.

Что происходит, когда команда зацикливается на чистоте

В мае 2026 года я наблюдаю странный паттерн. Команды месяцами рефакторят один и тот же модуль. Придумывают всё более абстрактные архитектуры. Обсуждают на спринт-ретритах, как сделать «ещё чище». А фича, которая нужна клиенту, лежит в бэклоге с марта.

Пользователям нет дела до того, какие паттерны проектирования использовал разработчик. Им важно: работает — не работает. Быстро — медленно. Понятно — непонятно. Всё.

Я видела, как команды тратили неделю на «правильное» именование переменных в сервисе, который используют три человека. И видела, как продукты с ужасным кодом внутри захватывали рынок, потому что создатели сфокусировались на решении реальной проблемы.

Чистый код — это следствие, не причина

Когда продукт растёт, когда появляются реальные пользователи и обратная связь — код начинает трансформироваться сам. То, что казалось «грязным» на старте, становится осознанным решением, продиктованным реальным опытом.

Говнокод на старте — это нормально. Это значит, вы двигаетесь быстро и учитесь. Идеальный код с нуля — это чаще всего признак того, что продукт так и не вышел к пользователям, потому что команда бесконечно полировала абстракции.

Как отделить зёрна от плевел

Спрашивайте перед любым рефакторингом: кто наш пользователь и что он получит? Если ответа нет — это не инженерная задача, это перфекционизм. Полезный для эго, бессмысленный для бизнеса.

Я за читаемый код. Я за понятные имена и внятную структуру. Но я против, когда чистота кода становится самоцелью и заменяет собой создание реальной ценности. Хороший продукт beats хороший код, который никто не увидел.