bu yana yazılım geliştiriyor, sektörü takip ediyorum. Alaylı ve Okulluyum. Kariyerimde profesyonel anlamda 20. yılı geride bıraktım. Büyük mühendislik organizasyonlarında yöneticilik görevlerinde bulundum. Birçok açık kaynak ve JavaScript topluluğunda liderlik tecrübem oldu. Boş zamanlarımda açık kaynak projelere katkıda bulunuyorum. YouTube üzerinde yazılımla ilgili yayınlar yapıyorum. Head of Engineering @ Teknasyon eser.live x.com/eser github.com/eser
optimize eden, veri erişim ve veriye transferinde çözümler sunan React'ın yeni uygulama mimarisi. REACT SERVER COMPONENTS Çeşitli problemler vardı. Bundle size'lar, SSR yapmak ve hydration'un zorluğu, Waterfall effect, Asenkron işlemlerin yönetilemezliği, Veri saklamak, Client'ın render işleminin uzun sürmesi vb. Neden İhtiyaç Oldu? Tanım
Outputs HTML Outputs Outputs JSON/XML JSON/XML Outputs JSON/XML a a Mobile Mobile Client Client a Mobile Client [ [ { { ...item1 ...item1 }, }, { { ...item2 ...item2 } } ] ] [ { ...item1 }, { ...item2 } ] Web Web Site Site Web Site <html> <html> <!-- <!-- server server generated generated content content --> --> <list> <list> <item <item /> /> <item <item /> /> </list> </list> <script <script /> /> </html> </html> <html> <!-- server generated content --> <list> <item /> <item /> </list> <script /> </html> Web Web Developer Developer Web Developer a a Web Web Client Client a Web Client Basic Basic Animations, Animations, Events Events Basic Animations, Events Mobile Mobile Developer Developer Mobile Developer EVRİMLEŞEN MİMARİ Statik İçerik + API Servisleri
halini oluşturması nedeniyle SEO dezavantajları azaltıldı + Artan internet bant hızlarıyla, sayfaların ilk hallerinin iletilmesi kullanıcının yükleme deneyimini iyileştirdi Web Web Site Site Web Site 2 2 items items 2 items Outputs Outputs JSON/XML JSON/XML Outputs JSON/XML a a Web Web Client Client a Web Client Other Other Clients... Clients... Other Clients... <html> <html> <!-- <!-- includes includes server server generated generated content content as as well well --> --> <div <div id="dom-target"> id="dom-target"> <list> <list> <item <item /> /> <item <item /> /> </list> </list> </div> </div> <script <script /> /> </html> </html> <html> <!-- includes server generated content as well --> <div id="dom-target"> <list> <item /> <item /> </list> </div> <script /> </html> Router, Router, Data Data Fetching, Fetching, DOM DOM Events, Events, State State Management, Management, Hydration Hydration Router, Data Fetching, DOM Events, State Management, Hydration [ [ { { ...item1 ...item1 }, }, { { ...item2 ...item2 } } ] ] [ { ...item1 }, { ...item2 } ] Backend Backend Developer Developer Backend Developer Frontend Frontend Developer Developer Frontend Developer Mobile Mobile Developer Developer Mobile Developer Platform Platform Developer Developer Platform Developer
benzeri DOM ile ilişkili life-cycle hooklar sunucu taraflı çalışmıyor. Bu durumlarda "use client" kullanılması gerekiyor. Cache, Preload, ServerOnly Sunucu ve Client farklı runtime'lar ve JavaScript Engine'lara sahip olabilir. Bu da Web API'lar için de dahil ol mak üzere tutarsızlık oluşturabilir. Client taraflı memoization kavramı yerine sunucu taraflı cache kavramı hayatımıza giriyor. Bilhassa fetch requestlerini, db isteklerini deduplike etmek için cache kullanmak durumunda kalıyoruz. 1 2 3 EVRİMLEŞEN MİMARİ
arabirimleri nasıl en verimli yoldan oluşturabileceğimize kafa yoruyor. İşin mühendislik yükünü React ekibi üstlenirken, Next de bu çözümleri bizi rahat ettirecek şekilde derli toplu paketleyerek bir developer-experience sunuyor. Ne katıyor? NEXT 13
Simplified Data Fetching (async/await for Components) Built-in SEO Support w/ Metadata API Streaming & <Suspense> + Loading Offscreen Rendering + Transitions NEXT 13
"App Router" ismi verdiğimiz bir yapıya geçiş yapıldı. Bu sayede nested routing, yüklenme, hata yönetimi vb. özelliklerini geliştirdiler. Yine bu sayede iç içe birden fazla layout'u kullanabiliyoruz. Nested Routes & Layouts
koymuş olduğumuz assetlerin çoğunu uygun şekilde sıkıştırıp yüklenme deneyimini kendisi yönetiyor, bu da Lighthouse skorlarını etkiliyor. <Image /> ve Lighthouse NEXT 13 Yine Next 13 ile birlikte gelen Metadata API sayesinde her sayfa bileşeninin SEO metadataları çok daha rahat tanımlanabiliyor. Built-in SEO Support w/ Metadata API