RSS Stories by Pinterest Engineering on Medium
Подписаться
Миграция 3,7 миллиона строк кода Flow в TypeScript
"Компания Pinterest перенесла 3,7 миллиона строк кода из Flow в TypeScript за восемь месяцев, что привело к улучшению безопасности типов, опыта разработчика и процесса найма. Изначально в 2016 году компания выбрала Flow вместо TypeScript из-за его постепенного внедрения и бесшовной интеграции с React. Однако, когда индустрия остановилась на TypeScript как на стандарте для проверки типов JavaScript, Pinterest решила перейти на него из-за лучшей поддержки сообщества, языковых функций и доступности талантов. Миграция была выполнена с помощью подхода "большого взрыва", разделенного на три фазы: настройка, преобразование и интеграция. Фаза настройки включала в себя конфигурацию TypeScript и @typescript-eslint, а фаза преобразования - перенос зависимостей, запуск codemod и подавление ошибок ESLint. Фаза интеграции была сосредоточена на адаптации существующих систем для работы в новой среде TypeScript. Компания написала скрипт для автоматизации всего процесса, минимизируя конфликты слияния и ручное вмешательство. После проверки миграции с помощью ежедневного автоматического тестирования, нескольких раундов ручного тестирования и статического анализа byte-for-byte, Pinterest успешно развернула ветку TypeScript. Компания многому научилась у открытого сообщества и внесла вклад в codemod flow-to-typescript от Stripe. Опыт Pinterest служит ценным уроком для других компаний, рассматривающих аналогичную миграцию."