🤖 Как ИИ закрыл 5-летний iOS-техдолг за 2 месяца
🤯 Команда Яндекс Браузера за 2 месяца переписала на Swift то, что вручную тянули 5 лет. 97,5 тысяч строк, 2000+ файлов, 106 pull request'ов. Ускорение в 2.5 раза против ручной миграции (интересно как считали).
Тулкит выложили под Apache 2.0. 🐱 Migration Toolkit for Swift — это набор Jinja-шаблонов и Python-скрипта setup_migration_rules.py, который из заполненного rules.md генерирует 4 готовых промпта под конкретный проект.
В rules.md около десятка макросов под специфику любого репо: префиксы ObjC-классов для ренейминга, маппинг ObjC→Swift, code style, инструкции для билд-системы (BUILD.gn, Bazel, Xcode), типичные ошибки компиляции с решениями, правила удаления @objc. В репозитории сразу лежат два готовых конфига как примеры: yandex-browser и wikipedia.
Качество обеспечивается тремя слоями. После каждой конверсии гоняется компиляция и тесты, при ошибках LLM итерирует сама. Отдельный промпт integration-tests.md пишет интеграционные тесты на мигрированный модуль. И комментарии ревьюеров с PR подаются обратно в LLM, она сама правит мелочи вроде форматирования и нейминга. Финальная валидация остаётся за разработчиком, но рутину забирает на себя.
Очень крутой пример того, что нейросеть при правильном подходе реально способна разгрести большой техдолг, а не снести кодбейс к чертям, как принято стращать в твиттере. Чёткий пайплайн, жёсткие рамки и автоматическая валидация через компиляцию и тесты, и LLM становится инструментом, а не лотереей. Точно хочу попробовать такой же подход для Android-миграций.
🔗 Статья на Хабре
🐱 GitHub репо
#AI #iOS #Swift #Яндекс
Post #103
2.9K
- 👍 37
- 👎 2