Разработка
Легаси-код
Также называют: legacy код, унаследованный код, устаревший код
Определение
Легаси-код — работающий код, который дорого менять: он написан на устаревшем стеке, не покрыт тестами или потерял авторов, поэтому любая правка требует восстанавливать логику по исходникам и грозит поломкой в непредсказуемом месте.
Важно отделить легаси от «старого». Код десятилетней давности с тестами, документацией и поддерживаемыми зависимостями легаси не является — его спокойно правят. И наоборот, проект, написанный полтора года назад без тестов, командой, которая уже разошлась, на форке фреймворка без обновлений — классическое легаси. Определяющий признак один: стоимость безопасного изменения. Если, чтобы поправить одну кнопку, нужно неделю разбираться и потом две недели ловить регресс, перед вами легаси независимо от даты первого коммита.
В российских условиях у легаси есть дополнительный слой. Часть систем завязана на продукты, которые ушли с рынка или перестали обновляться: пропали лицензии, закрылся доступ к обновлениям безопасности, отвалились платёжные и аналитические SDK. Такой код перестаёт быть просто неудобным и становится риском — и эксплуатационным, и регуляторным, если система обрабатывает персональные данные или относится к значимым объектам критической инфраструктуры. Здесь решение о модернизации принимается не по эстетике, а по требованиям.
Типичная ошибка — сразу требовать переписать всё с нуля. Полная переработка означает месяцы без новой функциональности, повторение всех ошибок, которые старая система уже пережила, и высокий риск не довести до конца. Рабочий подход обычно другой: обложить критичные места тестами, заморозить старый код, а новую функциональность выносить наружу, постепенно перенаправляя на неё трафик. Переписывание оправдано, когда стек не поддерживается в принципе, когда требования безопасности нарушены неустранимо или когда стоимость поддержки уже выше стоимости новой системы.
Смежные термины
- Технический долгТехнический долг — накопленная разница между тем, как система устроена, и тем, как она должна быть устроена: каждое упрощение ради срока превращается в постоянную надбавку к стоимости и срокам всех последующих задач.
- РефакторингРефакторинг — изменение внутренней структуры кода без изменения его внешнего поведения: функциональность до и после одинакова, меняются читаемость, связанность и стоимость следующей доработки, а результат подтверждается тестами и регрессом.
- МонолитМонолит — приложение, которое собирается и разворачивается одним куском: весь код лежит в общем репозитории и выполняется в одном процессе, работает с одной базой и выкатывается целиком, что даёт простоту разработки ценой связанности.
- CI/CDCI/CD — конвейер, который на каждый коммит автоматически собирает проект, прогоняет тесты и проверки, а затем выкладывает прошедшую сборку на тестовый стенд или в продакшн, убирая ручной деплой вместе с человеческим фактором.
- Импортозамещение ПОИмпортозамещение ПО — перевод информационных систем на российские продукты из реестра Минцифры: для госзаказчиков и субъектов критической информационной инфраструктуры это требование закона, для остального бизнеса — условие участия в тендерах и способ снять риск потери поддержки.
Услуги по теме
- Доработка и поддержка сайтаНе каждый проект нужно переписывать. Часто дешевле починить скорость, исправить технические SEO-ошибки, добавить недостающие разделы и интеграции — и получить рабочий сайт без бюджета на новую разработку.
- IT-консалтинг и продуктовый аудитСамые дорогие ошибки в разработке делаются до первой строчки кода: неверно понятая задача, стек, выбранный по привычке подрядчика, и ТЗ, которого нет. Консалтинг нужен, чтобы разобраться до того, как начнётся счётчик разработки: что именно строить, из чего, за сколько и в каком порядке. Результат — документ, а не мнение на созвоне.
- Разработка сайтов под ключДелаем сайты, которые не разваливаются через полгода: от одностраничника на CMS до магазина и веб-приложения на React и Next.js. Один подрядчик на дизайн, код, интеграции и запуск.
Почитать подробнее
- Редизайн сайта без потери трафика: этапы, риски и SEO-чеклист переездаПоловина запросов на редизайн — это на самом деле проблемы контента, скорости или оффера. Разбираем, как отличить одно от другого, почему поэтапный вывод безопаснее большого запуска и что должно быть в чеклисте переезда, чтобы не потерять органику.
- Как выбрать стек технологий для проекта: критерии, а не модаСтек выбирают на 3–5 лет вперёд, а решают за один созвон. Разбираем, в каком порядке принимать решения, какие критерии реально имеют вес, какие стеки работают для шести типов проектов и сколько стоит ошибка.
Нужна помощь с этим на практике?
Мы не только объясняем термины, но и делаем это руками. Опишите задачу — разберём и пришлём смету по этапам.