Легаси: остается только понять и принять

Странная штука - легаси. Все его ненавидят, все хотят переписать. Говорят: "Это надо выкинуть и сделать заново". А оно - живёт. Годами, десятилетиями. Переживает три рефакторинга, две смены команды и одного техдиректора, который клялся, что "через месяц всё будет иначе". И вот этого техдиректора уже нет. А легаси - есть.

Почему?

"Потому, что страшно трогать"? Ну да. Конечно страшно. Там же монолит. Там 5000 строк в одном контроллере. Там SQL-запросы, написанные до того, как появились ORM. Там переменные $a, $a1, $b, $data2_final_fixed. И комментарии вида "не трогать, работает". Комментарии, к слову, написанные в 2000-х. Человеком, который уволился тогда же. И который, судя по коду, был либо гением, либо психом. Ну или и тем и другим сразу.

Но страх не объяснение, а следствие. Причина глубже.

Легаси живёт, потому что оно - работает. Прямо сейчас - в эту самую секунду. Кто-то нажимает кнопку, и оно отвечает. Пусть криво, медленно и иногда падает. Но отвечает, а это - ключевое. Пока система отвечает, она существует. Как только перестанет, начнётся аврал, и её как-то починят. Ну или не починят и тогда она умрёт по-настоящему. Но это - вряд ли.

А пока она отвечает, её никто не трогает. Потому что трогать работающее - это риск. А риск без награды - это глупость. Какой смысл переписывать код, который работает? Чтобы что? Чтобы стало красиво? Красиво - это к дизайнерам. Для бизнеса красиво - это когда деньги идут. А деньги идут, легаси работает и всё хорошо.

И вот здесь появляется другой ответ. Более честный: легаси живёт, потому что бизнесу наплевать. Не в плохом смысле - в архитектурном. Бизнес не видит легаси, он видит процесс. Заказ пришёл - заказ ушёл, клиент доволен - клиент не звонит. Отчёт сформирован - отчёт отправлен. Бизнесу вообще не важно, как это устроено. Ему важно, что это устроено.

А если бизнесу наплевать - то и переписывать некому. Разработчики хотят, техдир хочет. Но техдир зависит от бизнеса, а бизнес говорит: "Зачем? Работает же". И тот соглашается. Потому что он тоже бизнес. Просто с техническим уклоном. И он понимает: переписывание - это полгода без релизов. Полгода без новых фич. Полгода, когда конкуренты убегают вперёд. А легаси работает пусть криво, но уже работает.

И еще есть ответ. Самый неприятный. Легаси живёт, потому что оно уже окупилось. Его написали, заплатили, забыли. И теперь оно как старый холодильник - гудит, иногда морозит, а иногда нет. Но к нему привыкли. И покупать новый - это не про "надо", а про "хочу". Но "хочу" - не аргумент. Аргументом было бы "сломался". А он же не сломался. Он просто старый и работает, хоть и кое-как.

Я помню систему, написанную в 2004-м. На одной из ранних версий PHP. Без ООП и фреймворков. С прямыми запросами в цикле. С HTML, вставленным чуть ли не в SQL. С логикой, размазанной по 40 файлам. Она работала в 2026-м. Двадцать два года. Пережила три хостинга, пять сисадминов. Про форматы данных не стоит вспоминать. Ни один хакер, попади туда не украл бы ничего - он бы расплакался и постарался бы починить сам, ибо жалко людей с этим вот.

Это не смешно. Это - диагноз. Система живёт не потому, что она хорошая. А потому, что она не настолько плохая, чтобы её убили. Она в зоне комфорта. Она работает, не падает часто. Она не мешает - она просто есть. Как старый сотрудник, который ничего не делает, но никому не мешает. И которого не увольняют, потому что жалко. Или потому, что страшно. Или потому, что непонятно, что он вообще делает. И зачем он вообще нужен.

И знаете, что самое интересное? Легаси не умрет никогда. Но не потому, что его не тронут. А потому, что ИИ. Придёт новый бизнес, новые требования, новые клиенты. И тогда легаси - не справится. И его перепишет нейронка. Потом в него сунется человек. И появится новое легаси, которое будет жить следующие 20 лет. Потому что альтернатива - смерть бизнеса. А бизнес не выбирает между красивым и некрасивым. Он выбирает между живым и мёртвым.

И легаси не проигрывает.

Оно мутирует в новых формах: где-то вездесущий ныне ИИ, где-то модный фреймворк, в котором код а-ля 2000-е, а где-то костыли от неспособности понять.