39 puan yazan kciter1 1 일 전 | 4 yorum | WhatsApp'ta paylaş
  • Frontend’i 2008 civarında bırakmış geliştiricilere, son 20 yıldaki değişimleri açıklayan bir yazı
  • Genel tez şu: Her araç gerçek bir sorunun (yaranın) üzerinde oluşmuş bir yara dokusu; her katmandaki çözüm, bir sonraki katmanın sorununu yaratarak üst üste birikti
  • Yazı boyunca tek bir <button> örnek alınarak, her dönemde düğmenin nasıl değiştiği izleniyor

  • Katman I — jQuery (2006–2010)
    • Tüm sayfayı yenilemeden yalnızca bir bölümünü değiştirme ihtiyacından doğdu
    • jQuery tarayıcılar arası farkları ortadan kaldırıp AJAX’ı yaygınlaştırdı; ancak verinin hem JS değişkenlerinde hem de ekranda bulunması, geliştiricinin bunları elle senkronize etmesi sorununu doğurdu
    • Bu elle DOM manipülasyonu, sonraki tüm katmanların çözmeye çalıştığı “ilk günah”tır
  • Katman II — Framework’ler (2010–2015)
    • Deklaratif UI: Ekranı güncelleme prosedürü yerine, veriye göre ekranın nasıl görüneceği tarif edilir; güncellemeyi framework halleder
    • React, component + JSX + Virtual DOM ile döneme yön verdi; Vue/Angular/Svelte/Solid onu izledi
    • Bugün tüm framework’ler, bağımlılık ilişkilerini izleyip yalnızca gerekli yerleri güncelleyen signal kavramına doğru yakınsıyor
    • htmx, Alpine.js, Hotwire gibi sunucudan HTML gönderen yaklaşıma geri dönen bir kanat da var
  • Katman III — Build (2012–2018)
    • JS’te modül sistemi olmadığı için CommonJS ve ES Modules rekabet etti; eski tarayıcı uyumluluğu için Babel transpile ve webpack bundling gerekli hale geldi
    • Build süreci minify, tree-shaking, code splitting ve source map üretimini içerir
    • Bunun bedeli olarak node_modules ortaya çıktı; boş bir starter proje bile yaklaşık 250 bin dosya kurar
  • Katman IV — Tooling Yarışı (2018–2024)
    • Yavaş build’ler ve karmaşık webpack yapılandırması sorunlarının Go/Rust ile yeniden yazılarak çözüldüğü dönem
    • esbuild (Go), bundling’i 10–100 kat hızlandırdı; SWC (Rust) Babel’in yerini aldı
    • Vite varsayılan araç haline geldi; production bundler Rust tabanlı Rolldown ile değiştiriliyor ve ilgili stack VoidZero (yakın zamanda Cloudflare tarafından satın alındı) altında birleşiyor
    • Paket yöneticileri de pnpm, Bun gibi araçlarla aynı akımı izliyor
  • Katman V — Sunucu Tarafı Rendering’in Dönüşü (2014–2026)
    • SPA’larda sunucu yalnızca boş bir div gönderdiği için ilk yüklemede boş ekran görünmesi ve arama motorlarının da boş sayfa görmesi sorunu vardı
    • Çözüm, HTML’i yeniden sunucuda render etmekti; bu da 2008’deki yaklaşıma geri dönüş anlamına gelir
    • SSR (her istekte render), SSG (build sırasında önceden render), ISR (otomatik güncellenen SSG) ortaya çıktı; Next.js, Astro, SvelteKit, Nuxt gibi meta-framework’ler bunu üstleniyor
    • Sunucu HTML’ini tarayıcıda yeniden canlandırmanın hydration maliyeti yeni bir sorun oldu; Islands (Astro), Resumability (Qwik) ve React Server Components, hydration’ı azaltan yaklaşımlar olarak ortaya çıktı
  • Katman VI — Mühendislik Araçları (2015–2026)
    • TypeScript, tip sistemiyle refactoring güvenliğini sağladı ve fiili standart haline geldi
    • Tailwind utility class yaklaşımıyla styling’e yön verirken, native CSS de nesting, değişkenler, container query gibi özelliklerle gelişti ve mevcut tooling’e duyulan ihtiyaç azaldı
    • shadcn/ui, component’leri kurmak yerine kaynak kodunu kopyalayıp sahiplenme yaklaşımını yerleştirdi; TanStack Query, Zustand, Zod, Vitest, Playwright ise 2026 uygulamalarının temel sözlüğünü oluşturuyor
  • Katman VII — Dağıtım (2015–2026)
    • FTP ile yükleme yerine Git deposunu Vercel/Netlify/Cloudflare’e bağlayınca her push’ta otomatik build ve dağıtım yapılır, her PR için canlı preview URL’i oluşturulur
    • Serverless function ve edge (kodun kullanıcıya yakın yüzlerce veri merkezinde çalışması) kavramları yerleşti
  • Katman VIII — Yapay Zeka (2023–2026)
    • v0, Lovable, Bolt’a doğal dille açıklayınca çalışan frontend üretiliyor; Cursor, Claude Code, Copilot kodu sizin yerinize yazıyor
    • Backend/sistem mühendisleri de bir gün içinde frontend yapabilir hale geldi; mühendislik alanları arasındaki sınırlar bulanıklaştı
    • Ancak üretilen kod, yukarıdaki 8 katmanın bilgisini varsayıyor; bu boşluğu kapatmak yazının amacı
  • Bedrock — Sonuç
    • 2026’da en ön cephedeki yönelim, HTML’i sunucuda render etmek, neredeyse hiç JS göndermemek ve web platformundan yararlanmak
    • Sektörün 20 yıl boyunca büyük bir daire çizdikten sonra, FTP ile yüklenen dosyalara benzeyen bir noktaya geri döndüğü sonucuna varılıyor

4 yorum

 
aer0700 1 일 전

Gerçekten baş döndürücü...

 
hmmhmmhm 1 일 전

Daha dün Node.js 0.8 sürümünü kullanıyormuşum gibi geliyor...

 
kankala 23 시간 전

Frontend dağıtımları da çoğunlukla container üzerinde nginx odaklı değil mi...

 
ng0301 1 일 전

Keyifle okudum haha