11 puan yazan xguru 2025-03-17 | Henüz yorum yok. | WhatsApp'ta paylaş
  • NYT, React 16’dan React 18’e yükseltme yaparken mevcutta kullandığı Enzyme yerine test yardımcı aracı olarak React Testing Library’ye geçti
    • 2016’dan beri Enzyme kullanıyordu, ancak React ekosistemi React Testing Library’yi önerdiği için bu geçiş gerekli hale geldi
  • Enzyme, DOM ağacının string gösterimini üretirken React Testing Library gerçek DOM ağacını oluşturup bunu tüm DOM’un bir parçası olarak render ediyor
  • Yüzlerce dosyanın dönüştürülmesi gerektiği için site trafiğini korumak ve hizmet kesintisini önlemek önemliydi

Üç geçiş stratejisi

  • Bulldozer yaklaşımı
    • Tüm dosyaları tek seferde büyük ölçekli biçimde değiştirme yöntemi
    • Kod çakışması riski yüksektir ve iş birliğini zorlaştırır
  • Consensus yaklaşımı
    • Mühendislerin her bir dosya için sahiplik alarak ilerlediği iş birlikçi yöntem
    • Yeni projeler veya kritik projeler için uygundur
  • Piecemeal yaklaşımı
    • Tek tek dosyaları stratejik ve kademeli olarak değiştirme
    • Her gün tutarlı güncellemeler yaparak aşamalı bir ivme oluşturur

New York Times’ın seçimi: Piecemeal yaklaşımı

  • Düzenlemeye en basit dosyalardan başlandı → bir veya iki satır değişiklik gerektiren dosyalar önce ele alındı
  • React Testing Library’de DOM öğelerini bulma ve bunları test etme yöntemine odaklanıldı
  • İlk düzenlemeler tamamlandıktan sonra kademeli olarak daha karmaşık testlere genişletilebildi
  • Çalışma ilerledikçe tutarlı kalıplar oluştu ve değişiklik yapmak kolaylaştı
  • Mühendislerin kolayca katılabilmesi sayesinde iş birliği güçlendirilebildi

Geçişin sonuçları ve kazanımları

  • Piecemeal yaklaşımı daha uzun sürse de istikrar ve sürekli ilerleme sağladı
  • Kod tabanında tutarlı kalıplar oluştuğu için karmaşık testler de daha kolay çözülebilir hale geldi
  • Diğer mühendislerin kolayca katılıp katkı sunabileceği bir ortam oluşturuldu
  • Geçiş sürecinde hatalar en aza indirildi ve özellik kesintileri önlendi
  • Geçişin başarısı sayesinde teknik borcun azaltılması ile sürekli geliştirme arasında denge korunabildi

Sonuç

  • Piecemeal yaklaşımıyla kod tabanı başarıyla React Testing Library’ye geçirildi
  • Kademeli değişikliklerle iş birliği güçlendirildi ve kod kalitesi korundu
  • Karmaşık testler de tutarlı kalıplar sayesinde daha kolay ele alınabilir hale geldi
  • Stratejik planlama ile teknik borcu azaltma arasındaki denge kurularak geçiş istikrarlı biçimde tamamlandı

Henüz yorum yok.

Henüz yorum yok.