Вопрос проверяет практический опыт сопровождения и развития существующих систем.
Legacy-код часто плохо документирован и трудно читаем. Он может содержать скрытые зависимости и неочевидную логику. Любое изменение несёт риск поломки. Работа с таким кодом требует осторожности и постепенных улучшений.
Legacy-код — это не обязательно плохой код, а код с накопленными ограничениями.
Наиболее распространённые сложности:
Отсутствие документации
неясные требования
потерянный контекст решений
Сильная связанность
сложно изолировать изменения
изменения ломают соседние части
Отсутствие тестов
невозможно безопасно рефакторить
ошибки обнаруживаются поздно
Часто присутствуют:
устаревшие библиотеки
неподдерживаемые версии Python
архитектурные компромиссы
Обычно применяют:
добавление тестов перед изменениями
локальный рефакторинг
постепенное улучшение
Работа с legacy-кодом требует дисциплины и аккуратности. Главная цель — снижать риски, не пытаясь переписать систему целиком.