- NYT meng-upgrade React 16 ke React 18 sambil memindahkan utilitas pengujiannya dari Enzyme ke React Testing Library
- Mereka telah menggunakan Enzyme sejak 2016, tetapi karena platform React merekomendasikan React Testing Library, perpindahan ini menjadi perlu
- Enzyme membuat representasi string dari tree DOM, sedangkan React Testing Library membuat tree DOM yang nyata dan merendernya sebagai bagian dari keseluruhan DOM
- Karena ratusan file harus dipindahkan, menjaga traffic situs dan mencegah gangguan layanan menjadi hal yang penting
Tiga strategi migrasi
- Pendekatan Bulldozer
- Cara yang memodifikasi seluruh file dalam skala besar sekaligus
- Risiko konflik kode tinggi, dan kolaborasi menjadi sulit
- Pendekatan Consensus
- Metode kolaboratif di mana para engineer masing-masing memiliki kepemilikan atas file dan mengerjakannya
- Cocok untuk proyek baru atau proyek penting
- Pendekatan Piecemeal
- Memodifikasi file satu per satu secara strategis dan bertahap
- Dengan pembaruan yang konsisten setiap hari, pendekatan ini membangun momentum secara bertahap
Pilihan The New York Times: pendekatan Piecemeal
- Mulai dari file yang paling sederhana → mengerjakan lebih dulu file yang hanya membutuhkan perubahan satu atau dua baris
- Berfokus pada cara menemukan elemen DOM di React Testing Library dan mengujinya
- Setelah perbaikan awal selesai, pekerjaan dapat diperluas secara bertahap ke pengujian yang lebih kompleks
- Seiring pekerjaan berjalan, pola yang konsisten mulai terbentuk sehingga proses perbaikan menjadi lebih mudah
- Para engineer dapat berpartisipasi dengan mudah sehingga kolaborasi bisa diperkuat
Hasil dan pencapaian migrasi
- Pendekatan Piecemeal memang memakan waktu lebih lama, tetapi memungkinkan stabilitas dan kemajuan yang berkelanjutan
- Pola yang konsisten terbentuk di codebase sehingga pengujian yang kompleks pun menjadi lebih mudah ditangani
- Tercipta lingkungan yang memudahkan engineer lain untuk ikut berpartisipasi dan berkontribusi
- Selama proses migrasi, bug dapat diminimalkan dan gangguan fungsi dapat dicegah
- Keberhasilan migrasi memungkinkan penyelesaian utang teknis sambil menjaga keseimbangan dengan pengembangan yang berkelanjutan
Kesimpulan
- Melalui pendekatan Piecemeal, codebase berhasil dipindahkan ke React Testing Library
- Perbaikan bertahap memperkuat kolaborasi dan menjaga kualitas kode
- Bahkan pengujian yang kompleks pun menjadi lebih mudah ditangani dengan mengikuti pola yang konsisten
- Migrasi yang stabil dapat diselesaikan dengan menyeimbangkan perencanaan strategis dan penyelesaian utang teknis
Belum ada komentar.