- Mevcut araçlardan (
Profiler, Why Did You Render?, React Devtools) farklı olarak neredeyse hiç kod değişikliği gerektirmez ve basit görsel ipuçları ile programlanabilir bir API sunar
- Performans sorunlarına yol açan render'ları otomatik olarak algılar ve vurgular; ayrıca tam olarak hangi bileşenleri düzeltmeniz gerektiğini gösterir
- Basit bir Javascript olduğu için her yere eklenebilir: Script etiketi, NPM vb.
React Scan'e neden ihtiyaç var
- React'i optimize etmek zor olabilir
- Bunun nedeni, bileşen
props'larının kasıtlı olarak değer yerine referansla karşılaştırılmasıdır. Bu sayede render yürütme maliyeti azaltılır
- Ancak bu yaklaşım, gereksiz render'ların yanlışlıkla oluşmasını kolaylaştırır ve uygulamanın yavaşlamasına neden olabilir
- Yüzlerce geliştiricinin çalıştığı büyük ölçekli production uygulamalarında bile optimizasyon çoğu zaman zordur (GitHub, Twitter, Instagram örnekleri).
React Scan'in React Devtools'tan daha iyi olduğu noktalar
- React Devtools'un sınırlamaları:
- Genel amaçlı bir araç olarak tasarlandığı için gereksiz render ile gerekli render'ı net biçimde ayırt edemez.
- Programlanabilir bir API'si olmadığından performans debugging süreçlerini otomatikleştirmek zordur.
- React Devtools'un vurgulama özelliğine dair kişisel şikayetler:
- Render algılama gecikmesi: React Devtools render'ları toplu işler; bu yüzden hızlı render edilen bileşenleri saniyede yalnızca bir kez gösterir.
- Kutu konumu güncelleme sorunu: Kaydırma yapıldığında veya boyut değiştirildiğinde kutu konumu güncellenmez.
- Render sayısını göstermemesi: Her bileşenin kaç kez render edildiğini göstermez.
- Sorunlu render'ı ayırt etmenin zorluğu: Yavaş veya verimsiz render'ları görmek için bileşenleri tek tek incelemek gerekir.
- Yetersiz kullanıcı deneyimi: Menü gizli olduğundan özelliği açıp kapatmak zahmetlidir. Performans debugging için uygun bir UI tasarımı değildir.
- Program API'sinin olmaması: Debugging'i otomatikleştirmek veya ileri seviye işler için kullanılamaz.
- Chrome uzantısıyla sınırlı olması: Web'in her yerinde kullanılamaz ve tarayıcı uzantısına bağımlıdır.
- Öznel tasarım sorunları: Kutu çizgileri bulanık görünür ve yavaş çalışıyormuş hissi verir.
- React Scan'i farklılaştıran noktalar:
- Performans debugging için tasarlanmış uzmanlaşmış bir araç olarak gereksiz render'ları net biçimde tespit eder.
- Tüm platformlarda kullanılabilir (web, script, npm) ve geliştirici deneyimini optimize eder.
- İddialı bir özellik yol haritasıyla React Devtools'un ötesine geçen olanaklar sunar.
3 yorum
Okuması kolay olduğu için güzel.
Çok uygun bir kullanım örneği
Demo küçük bir uygulama olduğu için olabilir ama tepki süresi hızlı görünüyor.