370万行のFlowコードをTypeScriptに移行 ノート

370万行のFlowコードをTypeScriptに移行

Pinterestは、8ヶ月間にわたりFlowからTypeScriptへの370万行のコード移行を実施し、型の安全性、開発者体験、採用の改善を実現した。2016年にPinterestは、Reactとのシームレスな統合と段階的な導入のためFlowを選択したが、JavaScriptの型チェックの標準としてTypeScriptが業界で定着したため、コミュニティーのサポート、言語機能、人材のvailabilityの面でTypeScriptを採用することにした。移行は「ビッグバン」アプローチで行われ、3つのフェーズに分けられた。設定フェーズではTypeScriptと@typescript-eslintを設定し、変換フェーズでは依存関係の移行、codemodの実行、ESLintエラーの抑制を行った。統合フェーズでは既存のシステムをTypeScript環境に適合させることに焦点を当てた。自動化スクリプトを書き、メージュコンフリクトや手動介入を最小限度に抑えた。daily自動テスト、手動テストの複数ラウンド、バイト・フォー・バイトの静的解析を通じて移行を検証し、PinterestはTypeScriptブランチを成功裏にロールアウトした。Pinterestはオープンソースコミュニティーから多くのことを学び、Stripeのflow-to-typescript codemodに貢献した。Pinterestの経験は、同様の移行を検討している他の企業にとって貴重な教訓となった。
CdXz5zHNQW_u2LVnNpu5X.png