Ответ
Да, сталкивался. Работа с legacy кодом — это часть реальной разработки. Основные проблемы: отсутствие документации, устаревшие подходы, "спагетти-код".
Как решаю:
- Пишу тесты для критических участков перед рефакторингом.
- Использую постепенный рефакторинг (маленькими шагами).
- Документирую найденные зависимости.
Пример:
// Было
public void ProcessData()
{
// 200 строк логики с side-эффектами
}
// Стало
public void ProcessData()
{
ValidateInput();
var data = ExtractData();
TransformData(data);
SaveResults(data);
}
Ключевое — не ломать работоспособность системы при изменениях.