1 puan yazan GN⁺ 2023-09-03 | 1 yorum | WhatsApp'ta paylaş
  • Yazarın 50.000 satır kodu React Server Components (RSCs)'a taşırken yaşadıkları ve çıkardığı dersler üzerine bir yazı
  • RSC'ler, istemci yerine sunucuda çalışan React bileşenleridir ve sunucu tarafı render'a (SSR) göre iki temel avantaj sunar
    • Birincisi, RSC'ler geliştiricilerin kodun nerede çalışacağını tanımlamasına olanak tanır; bu da bundle boyutunu küçültür ve hydration sırasında yapılan işi azaltır
    • İkincisi, sunucu bileşenleri veriyi doğrudan bileşen içinde alıp istemciye stream ederek React'te veri almayı daha kolay ve daha verimli hale getirir
  • Ancak RSC kullanmanın bazı kısıtları vardır. CSS-in-JS sunucu bileşenlerinde çalışmaz, React Context'e yalnızca istemci bileşenlerinden erişilebilir ve kodun nerede çalıştığını yönetmenin karmaşıklığı zorlayıcı olabilir
  • Yazar, RSC'leri kademeli olarak benimsemek için 3 adımlı bir yaklaşım öneriyor:
    • Uygulamanın köküne "use client" yönergesini ekleyin
    • Yönergeyi render ağacında mümkün olduğunca alt seviyelere taşıyın
    • Performans sorunları ortaya çıktığında gelişmiş kalıpları benimseyin
  • Eklenen karmaşıklığa rağmen yazar, daha küçük bundle boyutları, daha hızlı çalışma ve gelişmiş veri yükleme kalıpları gibi RSC avantajlarının, ekip için performans kazanımları değerliyse maliyetten ağır basabileceği sonucuna varıyor

1 yorum

 
GN⁺ 2023-09-03
Hacker News görüşü
  • Makale, 50K satırlık kodun React Server Components (RSCs)'e taşınmasını ele alıyor.
  • Bazı kullanıcılar, istemcinin anında görebileceği HTML alması nedeniyle sunucu tarafı render etmenin hızına ve sadeliğine değindi.
  • RSCs yerine Rails, Django, Laravel gibi full-stack veya klasik web framework'lerini değerlendirmenin daha hızlı ve daha ölçeklenebilir bir çözüm olabileceği yönünde öneriler var.
  • Bazı kullanıcılar, modern framework'lerin karmaşıklığıyla ilgili endişelerini dile getirerek, basit işler için bile gereken kapsamlı build ve derleme pipeline'larından bahsetti.
  • Kullanıcılar, next.js ve onun yeni app dizini yapısıyla ilgili kişisel deneyimlerini paylaştı; işin nerede gerçekleştiğini (sunucuda mı istemcide mi) anlamanın zorluğunu ve istemci tarafında çalışmayı varsayan mevcut React kütüphaneleriyle yaşanan sorunları vurguladı.
  • Bazı kullanıcılar, yeni next.js app dizini paradigmasındaki bug'lara ve pürüzlü noktalara işaret etti; buna dinamik route'lar ve paralel route'larla ilgili sorunlar da dahil.
  • Bir kullanıcı, PHP ile JavaScript arasındaki benzerliğe değinerek, JavaScript'in daha fazla kısaltma ve daha dik bir öğrenme eğrisi olsa da benzer sunucu tarafı işlevler sunacak şekilde evrildiğini belirtti.
  • Bazı kullanıcılar, static site generator'lar veya cache'li CMS'ler gibi daha basit araçlarla çözülebilecek işler için React kullanmanın gerekliliğini sorguladı.
  • Sunucunun her şeyi render ettiği ve CSS ile JavaScript'in render sonrasında sayfayı geliştirdiği dönemlere yönelik nostaljik bir hava var.
  • Bazı kullanıcılar, React'in daha modern, daha kolay ve daha hızlı alternatifleri yakalamak için giderek daha karmaşık hale geldiği görüşünü dile getirdi.
  • React'i backend'de HTML render etmek için kullanma konusunda bir tartışma var; bazı kullanıcılar bunun gerekliliğini sorgularken, bazıları geleneksel sunucu yanıt yöntemlerine kıyasla avantajlarını savundu.