React Scan - React uygulamalarını tarayıp performans sorunlarını otomatik olarak bulan araç
(react-scan.million.dev)- 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.