11 poin oleh xguru 2025-03-17 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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.

Belum ada komentar.