Migrer 3,7 millions de lignes de code Flow vers TypeScript
Pinterest a migré 3,7 millions de lignes de code de Flow vers TypeScript en huit mois, ce qui a entraîné une meilleure sécurité de type, une expérience développeur améliorée et une amélioration du recrutement. L'entreprise avait initialement choisi Flow au-dessus de TypeScript en 2016 en raison de son adoption progressive et de son intégration sans heurt avec React. Cependant, lorsque l'industrie a adopté TypeScript comme standard pour la vérification de type JavaScript, Pinterest a décidé d'adopter ce dernier en raison de son meilleur soutien communautaire, de ses fonctionnalités de langage et de la disponibilité de talents. La migration a été réalisée en utilisant une approche "big bang", divisant le processus en trois phases : configuration, conversion et intégration. La phase de configuration a consisté à configurer TypeScript et @typescript-eslint, tandis que la phase de conversion a impliqué la migration des dépendances, l'exécution de codemods et la suppression des erreurs ESLint. La phase d'intégration s'est concentrée sur l'adaptation des systèmes existants pour fonctionner dans le nouvel environnement TypeScript. L'entreprise a écrit un script pour automatiser l'ensemble du processus, minimisant les conflits de fusion et les interventions manuelles. Après avoir validé la migration par des tests automatisés quotidiens, plusieurs rounds de tests manuels et une analyse statique byte-for-byte, Pinterest a réussi à déployer la branche TypeScript. L'entreprise a appris beaucoup de la communauté open-source et a contribué au codemod flow-to-typescript de Stripe. L'expérience de Pinterest sert de leçon précieuse pour les autres entreprises qui envisagent une migration similaire.