2022'deki En Popüler Node.js Çerçeveleri

Yayınlanan: 2022-04-15
Özet » Node.js, yıllarca süren istikrarlı saltanattan sonra en popüler JavaScript çalışma zamanı olmaya devam ediyor. Ancak Node.js çerçevelerinin manzarası yakın tarihte önemli ölçüde değişti. Giderek daha fazla çerçeve, hibrit (meta) çözümler olarak oluşturulmakta ve yalnızca arka uç geliştiricilere değil, aynı zamanda tam yığın geliştiricilere de hizmet vermektedir. Bu yazıda mevcut trendleri ele alacağız ve en popüler Node.js çerçevelerini keşfedeceğiz.

İçindekiler
  • Bu veriler nasıl elde edildi?
  • Mevcut Node.js trendleri
  • #1 – Sonraki.js
  • #2 – Yuva
  • #3 – Kayış
  • #4 – Remiks
  • #5 – Nuxt
  • #6 – SvelteKit
  • #7 – Hızlılaştır
  • #8 – Sekoya
  • #9 – Ekspres
  • #10 – Adonis
  • #11 – Kilit Taşı
  • Meta, yerli ve bir tutam Headless

Express.js, Node.js kadar eskidir ve Express hala olağanüstü bir arka uç çerçevesi olsa da, yeni bir araç ve kit türü iz bırakıyor.

En önemlisi, trend, React gibi popüler bir çerçevenin tam yığın geliştirmeyi desteklemek için yeniden tasarlandığı meta çerçevelere doğru kaymıştır. Bu yaklaşımın avantajı, uzmanlığınızı belirli bir çerçevede sürdürebilmeniz ve aynı anda arka uç şeyler üzerinde çalışabilmenizdir. Başka bir deyişle, tam yığın geliştirme yapın.

Bu veriler nasıl elde edildi?

Tüm veriler, JavaScript Durumu, Yığın Taşması Geliştirici Anketi ve çeşitli projelerle çalışma deneyimi gibi anketlerden alınmıştır. Bu, hangi Node.js çerçevesinin en çok GitHub yıldızına sahip olduğunu temel alan bir inceleme değildir.

Bunun yerine, geçen yıl kazanılan yıldızların sayısını karşılaştırdım. Bu, belirli bir projenin ne kadar aktif olduğunun ve geliştiricilerin buna ne kadar iyi yanıt verdiğini gösteren sağlam bir göstergedir.

 Bu çerçevelerden herhangi birini gerçek zamanlı bir ortamda denemek istiyorsanız, geliştiriciler için barındırma platformları hakkındaki makaleme bakın. Her platformun ücretsiz bir planı vardır ve neredeyse hepsi bir GitHub deposunu içe aktarmanıza ve doğrudan barındırmanıza izin verir. 

Örneğin, herhangi bir repo alabilir ve birkaç dakika içinde canlı olmasını sağlayabilirsiniz.

Mevcut Node.js trendleri

Bu yazıda bahsedilen çerçevelerin çoğunun bir ön uç çerçevenin üstüne dayandığını fark edeceksiniz. Bu aynı zamanda bir meta çerçeve olarak da adlandırılır. Peki, bununla anlaşma nedir ve neden bu yaklaşım?

React gibi bir şeye bakarsak, bir sayfayı oluşturma şekli CSR – Client-Side Rendering ile yapılır. Bir istek yapıldığında, tarayıcıya gerçek sayfa içeriği olmayan bir barebone HTML dosyası verilir. Böylece tarayıcı, sayfa içeriğini içeren JavaScript belgesini almak için ikinci bir gezi yapar, ardından onu teslim eder ve asıl sayfayı oluşturur.

Ve bu, kullanıcı sayfayla her etkileşim kurduğunda olmaya devam edecek. HTML olduğu gibi kalsa da, farklı rota istekleri, kullanıcının istediği içeriği oluşturmak için tarayıcının ileri geri gitmesi gerektiği anlamına gelir.

Buna genellikle SPA veya Tek Sayfa Uygulaması da denir.

Ve işte bu – KSS – yaklaşımının dezavantajları:

  • Önbelleğe Alma – Tüm sayfa içeriği JavaScript aracılığıyla oluşturulduğundan, sayfada önbelleğe alınabilecek gerçek HTML içeriği yoktur.
  • SEO – Tarayıcılar “akıllı” hale gelirken, robotların içeriği yalnızca JavaScript'e bağlı olarak indekslemesiyle ilgili kesin sorunlar var.
  • Oluşturma – İlk oluşturma işlemi genellikle yavaştır ve JavaScript'in tamamı yüklenene kadar yanıt vermez.

Dolayısıyla, bu bağlamda, Next ve Nuxt gibi çerçevelerin arkasındaki fikir, ön uç çerçeveyi almak, ancak ona Node.js aracılığıyla SSR (Sunucu Tarafı Oluşturma) vermektir.

SSR'den bahsetmişken - Nick Johnstone, "Sunucu tarafı oluşturmanın saçma karmaşıklığı" başlıklı ilginç bir öz yayınladı. Ayrıca konuyla ilgili oldukça fazla tartışma içeren ilgili bir Hacker Haber dizisi de var. Yakın gelecekte pek bir şey değişmeyecek olsa da, bu kavramlardan bazılarının, bazı çerçevelerin işleyişinde önemli bir değişikliğe yol açacağına inanıyorum.


#1 – Sonraki.js

Vercel'den Next.js

Bir React Framework olmanın ötesinde – Next.js, absürt derecede yüksek geliştirme hızı sayesinde popülaritesini artırmaya devam ediyor. Next.js 10'dan Next.js 12'ye geçiş sadece bir yıl sürdü.

Next.js'nin arkasındaki temel kavram, temel olarak React'i kullanması, ancak tüm sunucu tarafı oluşturma yapısını kendi belirtimi aracılığıyla gerçekleştirmesidir. Oluşturma sunucu tarafında yapıldığından, sayfaları istemci tarafında oluşturmanız gerekmez, bu da söz konusu olduğunda muazzam performans avantajları ve SEO sağlar.

Next’in bu kadar çok benimsenmesinin nedenlerinden biri, kendi arka uçunuzu oluşturma ihtiyacını ortadan kaldırmasıdır. Tüm bunlar olurken, uygulamalarınızın performansını kutudan çıkar çıkmaz optimize etmenin anlamlı yollarını sunar. Vercel koruyor.

Web Sitesi Dokümanları GitHub

#2 – Yuva

NestJS

NestJS, arka uç topluluğundan önemli bir onay almayı sessizce başardı. Nest'in arkasındaki ana felsefelerden biri, React gibi çerçeveler ön uç geliştirmeyi hızlandırırken, bu tür birçok çerçevenin uygulama mimarisi sorununu çözmek için mücadele etmesidir. Nest bunu mimariye öncelik veren bir yaklaşımla çözüyor.

Tabii ki arka uca özgü olan.

Nest, (Angular'dan esinlenerek) üç temel bileşene dayanır: Denetleyiciler , Sağlayıcılar ve Modüller . Modüllerin kullanımı, Nest'in karmaşık uygulama hiyerarşisi sorununu çözmeye çalışmasıdır. Her bileşen, içinde kendi denetleyicilerini, bağımlılıklarını ve belirli sağlayıcılarını yapılandırdığınız ayrı bir modülde kategorize edilebilir.

Web Sitesi Dokümanları GitHub

#3 – Kayış

kayış

Başsız, mevcut ön uç anlatısındaki tüm öfkedir. Ve Strapi, kendisini önde gelen Headless CMS çerçevelerinden biri olarak konumlandırmada harika bir iş çıkardı.

Peki, Strapi nedir? En pratik terimlerle, Strapi, ön uç uygulamanızın arka ucudur. Bir anlamda, Strapi, Express gibi bir çerçeve öğrenme ihtiyacını ortadan kaldırıyor çünkü ayak işlerinin çoğunu API'si aracılığıyla yapabiliyor.

Buna içeriğinizi özel bir kullanıcı arayüzü aracılığıyla yönetme, GraphQL ve REST için anında uç noktalar, kullanıcı yönetimi (roller vb.) ve üzerine oluşturabileceğiniz ayrı bir eklenti arayüzü dahildir. Strapi tamamen çerçeveden bağımsızdır ve hemen hemen her dil, çerçeve veya ön uç kitaplığı ile bütünleşir.

Web Sitesi Dokümanları GitHub

#4 – Remiks

remix

Remix, React Router'ı yapan kişiler tarafından oluşturulmuş tam yığın bir çerçevedir.

Remix'in ayrıca son yıllarda gördüğümüz en hızlı büyüyen tam yığın çerçevelerden biri olduğuna inanıyorum. Peki, nasıl olur? Birincisi, Remix, ortak durum kodları ve kullanıcı etkileşimleri için kısa API'ler sağlayarak Web Standartları ile mümkün olduğunca bütünleşmeye çalışır.

Geleneksel bir çerçeveden farklı olarak, Remix, şelale (bileşen) tabanlı yapılar oluşturmaz. Bunun yerine, veriler sunucu tarafında paralel olarak yüklenir ve ardından bir HTML sayfası olarak sunulur. Bu aynı zamanda JavaScript tabanlı özelliklerin (form gönderimleri gibi) kullanıcının JavaScript'i devre dışı bırakması durumunda siteyi bozmaması anlamına gelir.

Web Sitesi Dokümanları GitHub

#5 – Nuxt

NuxtJS

Nuxt 3 (Vue 3 için) açık beta sürümünde: Gözünüzü dört açın.

Nuxt, sağlam uygulamalar oluşturmak için tam yığın bir çerçeve olarak Vue üzerine kuruludur. Aynı zamanda, tam yığın Vue geliştirme deneyimini büyük ölçüde geliştirmek için oluşturulmuş bir meta çerçevedir. Nuxt, SSR, SPA ve Statik Oluşturulan Sayfaları destekler.

Vue geliştiricileri için ana avantaj, Nuxt'un görünümleri önceden oluşturabilmesi ve bunları statik dosyalar olarak sunabilmesidir. Bunun doğal olarak SEO optimizasyonu için harika sonuçları vardır ve etkileşimde önemli bir artış sağlar. Ama bazı olumsuzluklar da var.

Vue kalıcı bir istemci tarafı kanalına sahipken, Nuxt'ta yoktur. Bu nedenle, Nuxt sayfayı oluşturduktan sonra DOM ile etkileşim kurmak zor olabilir.

Web Sitesi Dokümanları GitHub

#6 – SvelteKit

SvelteKit

Svelte, mevcut ön uç çağında havalı çocuk statüsüne sahip ve ekip, Sapper'ın üzerine inşa edilen (onun yerini alan) tam yığın bir çerçeve olan SvelteKit üzerinde çalışıyor. SvelteKit, karmaşık bir dosya tabanlı yönlendirme sistemi ile öne çıkıyor.

SvelteKit'in birincil amacı, daha yaygın olan bazı darboğazları ortadan kaldırarak web geliştirmeyi hızlandırmaktır. Snowpack, Vite ve diğer harici araçları uygulayarak – SvelteKit, zengin özelliklere sahip bir geliştirme deneyimi sağlayabilir.

Son olarak, SvelteKit Hidrasyon sürecini uygular. Sunucu tarafında oluşturulmuş DOM öğeleri için etkin durumu koruma yeteneği.

Web Sitesi Dokümanları GitHub

#7 – Hızlılaştır

hızlandırmak

Fastify çerçevesi tamamen performansla ilgilidir ve bireysel karşılaştırmalar, saniyede 60.000'e kadar isteği işleyebileceğini göstermiştir. Fastify'ı (zaten harika araçların üzerine) Kancalar ve Eklentiler aracılığıyla genişletebilirsiniz. Ayrıca, TypeScript öncelikli bir çerçeve olmamasına rağmen Fastify, TypeScript'i destekler .

Eklentilerden bahsetmişken, onlar aracılığıyla birçok Fastify geliştirmesi gerçekleşir. Öyle ki Fastify, hem topluluk yapımı hem de Fastify ekibi tarafından yapılan eklentiler için resmi bir depoya sahiptir. Eklentilerin arkasındaki fikir, temiz bir sistem mimarisi sağlaması ve alternatif çerçevelere atlama ihtiyacını ortadan kaldırmasıdır. Bu, Fastify'ı güçlü gerçek zamanlı performansa sahip düşük maliyetli API'ler oluşturmak için özellikle yararlı kılar.

Web Sitesi Dokümanları GitHub

#8 – Sekoya

sekoya

API'leri seviyor musunuz? JAMstack hoşunuza gitti mi? Cevabınız evet ise RedwoodJS'ye bayılacaksınız. Birçok modern teknolojiyi kullanan tam yığın bir web uygulaması çerçevesidir. Ve bu teknolojiler GraphQL, Prisma, Storybook ve Jest'i içerir. Redwood'daki ön uç, React'in üzerine inşa edilmiştir ve ayrıca tam TypeScript desteği alırsınız.

Web Sitesi Dokümanları GitHub

#9 – Ekspres

Ekspres Node.js Çerçevesi

Ekspres gözden düştü mü? Tam olarak değil. Çerçeve hala son derece popüler ve seviliyor, diğer büyük oyuncular kadar değil. Yıllardır Express ile çalışan bir ekip için temel bir sorun olmadığı için başka bir şeye geçmek mantıklı değil. Pek çok çerçeve hala Express üzerine kuruludur .

Web Sitesi Dokümanları GitHub

#10 – Adonis

Adonis

Adonis, Node.js için oluşturulmuş bir TypeScript ilk arka uç MVC çerçevesidir. Adonis'in kendisini bir arka uç çerçevesi olarak tanımlamasına rağmen, onunla tam yığın geliştirme yapmak kadar iyi olduğunu unutmayın.

Geliştiricilerin Adonis'i sevmesinin temel nedenlerinden biri, TypeScript için yerel desteğidir.

Ancak aynı zamanda ORM (Nesne İlişkisel Haritalama), güçlü güvenlik uygulamaları ve takip edilmesi kolay belgeler için destek.

Son olarak, Adonis, Node.js ekosistemiyle temel düzeyde bütünleşir, bu nedenle Node geliştirme konusunda önceden deneyime sahip olmak hemen hemen bir zorunluluktur.

Web Sitesi Dokümanları GitHub

#11 – Kilit Taşı

Kilit taşı

Bu listedeki son Node.js çerçevesi Keystone'dur. Ve Express gibi, neredeyse ilk günden beri var. Bu, Keystone'u geliştirici dostu bir deneyim oluşturmak için somut araçlar ve entegrasyonlar sağlayan olgun bir çerçeve haline getirir.

Keystone'daki bazı dikkate değer özellikler (çoğu yıllar içinde iyileştirildi), daha da genişletebileceğiniz GraphQL API aracılığıyla otomatik CRUD içerir. Ek olarak, kendi React.js bileşenlerinizi oluşturabilir ve uygulayabilirsiniz.

Keystone çeşitli geliştirme alanlarında kullanılır ve mobil uygulamalar, pratik web siteleri, e-ticaret vitrinleri ve çok daha fazlasıyla iyi çalışır.

Web Sitesi Dokümanları GitHub

Meta, yerli ve bir tutam Headless

En son böyle bir genel bakış yaptığımdan bu yana epey zaman geçti. O zamanlar işler çok daha basitti ve Compound ve Lokomotif hiçbir yerde bulunmazken, Keystone ve Express'in zamanın testinden geçtiğini görmek güzel.

Ayrıca Node.js'yi çevreleyen oldukça fazla vızıltı olduğunu da söyleyebilirim. Bazı insanların mutsuz olduğuna ve buna sıkışıp kaldığına inanıyorum. Ve paket yöneticileri (npm) fikri de eskimeye başlıyor çünkü paketler, aksi takdirde küçük ölçekli bir projeye gereksiz paket boyutları yığınları eklemeye devam ediyor.

Ancak durum ne olursa olsun, her çerçevenin popülaritesi kendisi için konuşur. Genel olarak, geliştiriciler meta çerçevelerle çalışmaktan mutludur ve bunun tam yığın geliştirmeyi de kolaylaştırmasıyla ilgili olabilir. Bu, çoğunlukla yeni bir favori çerçeveyi sıfırdan yeniden öğrenme ihtiyacını ortadan kaldırır.