Airbnbのフロントエンドは、React Upgrade Systemを使用してReact 18にアップグレードしました。これにより、長時間の機能ブランチを必要とせずに、段階的かつテスト可能なアップグレードが可能になります。
モジュールエイリアシングと環境ターゲットにより、Reactのバージョンが別々のビルドアーティファクトとランタイム環境に分割されます。
TypeScriptの不一致は、シム、タイプ増強、段階的なTypeScriptエラーの修正を使用して処理されました。
包括的なテストには、ビジュアルリグレッション、統合、単体テストが含まれ、単体テストはReact 16と18の両方で実行されました。
段階的なロールアウトにより、React 16と18の環境へのトラフィックが制御され、内部テストと段階的なサーフェスアップグレードが可能になりました。
このシステムにより、React 18を指さずにReact 19のカナリア版のリリースをテストすることができました。
React 18の新しいルートAPIやコンカレントレンダリングなどの機能を採用した後、パフォーマンスの向上が観察されました。
このシステムは、継続的なアップグレードの取り組みを促進し、大規模な、一時的な変更を回避します。
Reactチームの後方互換性への取り組みにより、このアップグレードアプローチが可能になりました。
Airbnbのフロントエンドは現在、React 19ベータを実行しており、将来のReactアップグレードのための準備が整っています。
medium.com
How Airbnb Smoothly Upgrades React
