Назад к словарю
Код-ревью и качество

Легаси-код

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

Определение

Michael Feathers определяет легаси-код просто как "код без тестов", потому что без тестов изменения рискованны. Легаси-код часто имеет: неясную архитектуру, отсутствующую документацию, deprecated зависимости, сложные взаимозависимости и накопленные костыли. Однако легаси-код также ценен — он представляет работающую бизнес-логику, проверенную в продакшне.

Почему это важно

Большинство разработчиков тратят больше времени на поддержку легаси-кода, чем на написание нового. Понимание безопасной модификации легаси-систем — критический навык. Техники включают: добавление характеризационных тестов, паттерн strangler fig, инкрементальный рефакторинг.

Пример

15-летний PHP-монолит обрабатывает миллионы транзакций ежедневно. У него нет тестов, используются deprecated библиотеки, оригинальная команда ушла. Разработчики должны добавить тесты перед изменениями, чтобы не сломать продакшн.

Связанные термины

legacy codewhat is legacy codelegacy systemworking with legacy code

Автоматизируйте код-ревью с diffray

Мульти-агентная AI-система для код-ревью. Находит баги, уязвимости и проблемы архитектуры автоматически.