- 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.