Этот вопрос стоял перед командой Яндекс Браузера. За пять лет ручной миграции удалось переписать чуть более половины объёма legacy кода. Ситуацию изменила автоматизация на базе LLM — это решение:
✨Анализирует граф зависимостей, чтобы начинать миграцию с «листьев» — модулей, не зависящих от старого кода
✨Переписывает код, параллельно проверяя его сборкой и тестами
✨Проводит рефакторинг в соответствии с лучшими практиками Swift
✨Автоматически проверяет качество по чек-листу перед код-ревью
В итоге за 2 месяца коллеги переписали 97 500 строк кода, мигрировали 2 167 файлов и смёржили 106 пул-реквестов — вместо запланированного года.
✌️ Все промпты, конфигурационные шаблоны и вспомогательные скрипты команда выложила в открытый доступ на SourceCraft.
Забирайте и адаптируйте под свои проекты. А мы уже готовим фичу, чтобы в будущем можно было запускать этот пайплайн прямо внутри платформы.
🔗 Подробности и технические детали — в статье на Хабре.
