2 puan yazan GN⁺ 2024-10-01 | 1 yorum | WhatsApp'ta paylaş

Web Components sorun değil

  • Web geliştirme topluluğu sık sık web components hakkında tartışıyor
  • Ryan Carniato, "Web Components Are Not the Future" başlıklı bir yazı yazdı; Cory LaViska ise "Web Components Are Not the Future — They’re the Present" başlıklı yazıyla buna yanıt verdi
  • Yazar bu tartışmayı barışçıl bir şekilde çözmeye çalışıyor

Performans

  • Web components, Custom Elements temeline dayanıyor; bu yüzden tüm arayüzler DOM üzerinden işleniyor
  • DOM düğümlerini en aza indirmek, performans optimizasyonunun temel noktası
  • Ancak her şey performanstan ibaret değil; bakım kolaylığı, güvenlik, kullanılabilirlik ve erişilebilirlik gibi diğer unsurlar da hesaba katılmalı
  • Örneğin aria-* niteliklerini render etmemek performansı artırabilir, ancak erişilebilirlik için bunlar kesinlikle gerekli
  • Performans optimizasyonu önemli olsa da, pratikte layout thrashing, network waterfall ve gereksiz yeniden render gibi daha basit sorunlar performans üzerinde daha büyük etki yaratıyor

Standartların maliyeti

  • Standartları desteklemek, ek kod yazımı ve çalıştırma gerektiriyor
  • Ancak web components desteği sağlamak büyük bir yük değil
  • Yeni web platformu özelliklerini dikkate almak doğal bir şey ve bu durum Symbols, Proxys, Promises gibi yapılar için de geçerli
  • Web geliştirme topluluğunun bir kısmı web components desteklemek istemeyebilir ve bu da sorun değil
  • Web, farklı yaklaşımlara izin veren büyük bir çadır

Sonuç

  • Web components kendi başına sorunlu değil, ancak her şeyin yerini alabileceği vaadi riskli
  • Web components; server-side rendering, erişilebilirlik ve birlikte çalışabilirlik gibi konularda zayıf yönlere sahip
  • React, Solid, Svelte gibi diğer framework'lerin hâlâ öne çıktığı alanlar var
  • Web, çok çeşitli amaçlar için kullanılıyor ve bu da yaratıcılığı ifade etmek için fırsatlar sunuyor
  • Web components size uygun olmayabilir ve bu da sorun değil

# GN⁺ özeti

  • Bu yazı, web components hakkında farklı bakış açıları sunuyor ve performans ile diğer unsurlar arasındaki dengeyi vurguluyor
  • Web components her şeyin yerini alamaz, ancak belirli kullanım alanları için uygun
  • Web geliştirme topluluğu farklı yaklaşımlara izin veriyor ve bu da yaratıcılığı teşvik ediyor
  • Eğer web components size uymuyorsa başka framework'ler kullanabilirsiniz
  • Web'in sunduğu çeşitli olanaklar, yeni yaratıcı ifade biçimleri için fırsatlar sağlıyor

1 yorum

 
GN⁺ 2024-10-01
Hacker News görüşü
  • "Web Components Are Not the Future" başlıklı yazının ikna edici argümanlardan yoksun olduğu hissedilmiş

    • Mevcut frontend framework ekosistemi karmaşık
    • Karmaşık framework'leri öğrenmek istenmiyor
    • Dokümantasyon olmadan anlaşılamayan sihirli özellikler istenmiyor
    • Web Components sezgiseldir ve Shadow DOM aracılığıyla izolasyon sağlar
    • React çağından geriye yalnızca JSX'in kalması gerektiği düşünülüyor
  • İnsanlar farklı optimizasyonların peşinde olduğu için görüşler ayrışıyor

    • VC destekli startup'larda framework'ler uygun olabilir
    • Akademik araştırma laboratuvarlarında bakım maliyeti düşük olan Web Components daha iyi olabilir
    • Vue'den Web Components'a geçiş deneyimi çok olumluydu
    • Bağımlılıklar azaldığı için yönetim kolaylaştı
  • Svelte, Custom Elements API aracılığıyla Web Components oluşturmayı destekliyor

    • Svelte, JS/HTML/CSS'e derlenerek yeniden kullanılabilir bileşenler oluşturmayı kolaylaştırıyor
  • Web Components'ın full-stack geliştiricilerin hayatını daha iyi hale getirmediği düşünülüyor

    • Çoğu örnek sadece HTML içinde veriyi şablonlamaktan ibaret
    • Bunlar zaten Handlebars ile yapılabiliyor
  • Web Components ve Shadow DOM, tarayıcı eklentilerinin çalışmasını engelleyebilir

    • Tarayıcı üreticileri bu sorunu çözmek için acele etmiyor
  • Birlikte çalışabilirlik performans maliyeti getirir

    • Birden fazla framework'ün kendi runtime'ına sahip olması performans düşüşüne yol açabilir
    • Web Components teknik olarak geridedir ve karmaşıklığı artırır
  • Web Components'ın güncel frontend sorunlarını çözebileceği düşünülüyor

    • Performansı yüksektir ve veri tablolarında akıcı kaydırma sağlayabilir
    • Bir Web Components kütüphanesi hazırlanıyor
  • 250.000 satırlık bir JS kod tabanı devralındı ve Web Components ile refactor ediliyor

    • Kod uzunluğu 50.000 satır azaltıldı
    • Mevcut kodun işlevlerini anlamaya yardımcı oluyor
  • Web Components, JS olmadan da çalışabilir

    • Kademeli iyileştirme için birkaç kez kullanıldı
    • Sunucu tarafı render ile iyi çalışıyor
  • Framework'ler ve Web Components farklı sorunları çözen araçlardır

    • Framework'ler duruma bağlı görünüm render etmeden sorumludur
    • Web Components durum yönetimi sorununu çözmez
    • İkisinin bir arada var olabileceği düşünülüyor