Cele mai populare cadre Node.js din 2022

Publicat: 2022-04-15
Rezumat » Node.js rămâne cel mai popular timp de rulare JavaScript după ani de domnie constantă. Dar peisajul cadrelor Node.js s-a schimbat dramatic în istoria recentă. Din ce în ce mai multe cadre sunt construite ca soluții hibride (meta), care se adresează nu numai dezvoltatorilor de back-end, ci și dezvoltatorilor full-stack. În acest articol, vom aborda tendințele actuale și vom explora cele mai populare cadre Node.js.

Cuprins
  • Cum au fost obținute aceste date?
  • Tendințele actuale ale Node.js
  • #1 – Next.js
  • #2 – Cuib
  • #3 – Strapi
  • #4 – Remix
  • #5 – Nuxt
  • #6 – SvelteKit
  • #7 – Fastify
  • #8 – Redwood
  • #9 – Express
  • #10 – Adonis
  • #11 – Keystone
  • Meta, nativ și un pic de Headless

Express.js este la fel de vechi ca Node.js și, în timp ce Express este încă un cadru back-end fenomenal, o nouă generație de instrumente și kituri își lasă amprenta.

Cel mai important, tendința s-a mutat către meta cadre, unde un cadru popular precum React este reutilizat pentru a sprijini dezvoltarea full-stack. Avantajul acestei abordări este că vă puteți menține expertiza într-un cadru specific și puteți lucra simultan la chestii de back-end. Cu alte cuvinte, faceți dezvoltare full-stack.

Cum au fost obținute aceste date?

Toate datele au fost obținute din sondaje, cum ar fi Starea JavaScript, Sondajul pentru dezvoltatori Stack Overflow și experiența personală de lucru cu diferite proiecte. Aceasta nu este o recenzie bazată pe cadru Node.js care are cele mai multe stele GitHub.

În schimb, am comparat numărul de stele câștigate în ultimul an. Acesta este un indicator solid al cât de activ este un anumit proiect și cât de bine răspund dezvoltatorii la el.

 Dacă doriți să încercați oricare dintre aceste cadre într-un mediu în timp real, consultați articolul meu despre platformele de găzduire pentru dezvoltatori. Fiecare platformă are un plan gratuit și aproape toate vă permit să importați un depozit GitHub și să îl găzduiți direct. 

De exemplu, puteți lua orice repo și îl puteți activa în câteva minute.

Tendințele actuale ale Node.js

Veți observa pe parcursul acestei postări că multe dintre cadrele menționate în acest articol se bazează pe un cadru front-end. Acest lucru este denumit și meta-cadru . Deci, care este treaba cu asta și de ce această abordare?

Dacă ne uităm la ceva de genul React, modul în care redă o pagină se face prin CSR – Client-Side Rendering. Odată ce se face o solicitare, browserului i se oferă un fișier HTML simplu fără conținutul real al paginii. Deci, browserul face o călătorie a doua pentru a obține documentul JavaScript care conține conținutul paginii, apoi îl livrează și redă pagina reală.

Și acest lucru se va întâmpla de fiecare dată când utilizatorul interacționează cu pagina. Chiar dacă HTML-ul rămâne așa cum este, cererile de rute diferite înseamnă că browserul trebuie să continue să meargă înainte și înapoi pentru a reda conținutul dorit de utilizator.

Aceasta este adesea denumită SPA sau o aplicație cu o singură pagină.

Și iată dezavantajele acestei abordări – CSR –:

  • Memorarea în cache – Deoarece tot conținutul paginii este redat prin JavaScript, nu există conținut HTML real pe pagină care să poată fi stocat în cache.
  • SEO – În timp ce crawlerele devin mai „inteligente”, există probleme definitive legate de faptul că indexarea conținutului roboților depinde numai de JavaScript.
  • Redare – Redarea inițială este adesea lentă și nu răspunde până când tot JavaScript s-a terminat de încărcat.

Așadar, în acest context, ideea din spatele cadrelor precum Next și Nuxt este să luăm framework-ul front-end, dar să-i oferim SSR (Server-Side Rendering) prin Node.js.

Vorbind despre SSR – Nick Johnstone a publicat o idee interesantă intitulată „Complexitatea absurdă a redării pe server”. Și există, de asemenea, un thread corespunzător Hacker News cu destul de multe discuții pe această temă. Deși nu se vor schimba multe în viitorul apropiat, cred că unele dintre aceste concepte vor conduce la o schimbare semnificativă a modului în care funcționează unele cadre.


#1 – Next.js

Next.js de Vercel

Mai mult decât a fi un React Framework – Next.js continuă să crească în popularitate datorită unui ritm de dezvoltare absurd de ridicat. Next.js 10 până la Next.js 12 a durat doar un an.

Conceptul de bază din spatele Next.js este că folosește React ca bază, dar realizează toată structura de randare de pe partea serverului prin propria sa specificație. Deoarece randarea se face pe partea serverului, nu trebuie să randați paginile pe partea clientului, oferind beneficii enorme de performanță și SEO acolo unde este vorba.

Unul dintre motivele pentru care Next a văzut o astfel de adoptare în masă este că elimină nevoia de a vă construi propriul back-end. În tot acest timp, oferind modalități semnificative de a optimiza performanța aplicațiilor dvs. din cutie. Vercel o întreține.

Site-ul Documente GitHub

#2 – Cuib

NestJS

NestJS a reușit în liniște să atragă aprobare semnificativă din partea comunității back-end. Una dintre principalele filozofii din spatele Nest este că, în timp ce cadre precum React accelerează dezvoltarea front-end, multe astfel de cadre se luptă să rezolve problema arhitecturii aplicației. Nest rezolvă acest lucru printr-o abordare bazată pe arhitectură.

Ceea ce este specific back-end-ului, desigur.

Nest se bazează pe trei componente de bază (inspirate de Angular) – Controlere , Furnizori și Module . Utilizarea modulelor este modul în care Nest încearcă să rezolve problema ierarhiei complexe a aplicațiilor. Fiecare componentă poate fi clasificată într-un modul separat, în cadrul căruia îi configurați propriile controlere, dependențe și furnizori specifici.

Site-ul Documente GitHub

#3 – Strapi

Strapi

Fără cap este de furie în narațiunea actuală de front-end. Și Strapi a făcut o treabă grozavă în poziționarea ca unul dintre cadrele CMS Headless de top.

Deci, ce este Strapi? În termeni cei mai practici, Strapi este back-end-ul aplicației dumneavoastră front-end. Într-un fel, Strapi elimină nevoia de a învăța un cadru precum Express, deoarece poate face cea mai mare parte a muncii prin intermediul API-ului său.

Aceasta include gestionarea conținutului dvs. printr-o interfață de utilizare personalizată, puncte finale din mers pentru GraphQL și REST, gestionarea utilizatorilor (roluri etc.) și o interfață de plugin separată pe care o puteți construi. Strapi este complet independent de framework și se integrează cu aproape orice limbaj, cadru sau bibliotecă front-end.

Site-ul Documente GitHub

#4 – Remix

Remix

Remix este un framework full-stack construit de cei care au creat React Router.

Cred că Remix este, de asemenea, unul dintre cadrele full-stack cu cea mai rapidă creștere pe care le-am văzut în ultimii ani. Deci, cum de? În primul rând, Remix încearcă să se integreze cât mai mult posibil cu standardele web, oferind API-uri concise pentru codurile comune de stare și interacțiunile utilizatorilor.

Spre deosebire de un cadru tradițional, Remix nu creează structuri bazate pe cascade (componente). În schimb, datele sunt încărcate în paralel pe partea serverului și apoi servite ca pagină HTML. Aceasta înseamnă, de asemenea, că funcțiile bazate pe JavaScript (cum ar fi trimiterea formularelor) nu vor distruge site-ul dacă utilizatorul are JavaScript dezactivat.

Site-ul Documente GitHub

#5 – Nuxt

NuxtJS

Nuxt 3 (pentru Vue 3) este în beta deschisă: fii atent.

Nuxt se bazează pe Vue ca un cadru complet pentru crearea de aplicații robuste. Este, de asemenea, un meta-cadru, creat pentru a îmbunătăți experiența dezvoltării Vue full-stack în mod drastic. Nuxt acceptă SSR, SPA și pagini generate statice.

Principalul avantaj pentru dezvoltatorii Vue este că Nuxt poate pre-rada vizualizările și le poate servi ca fișiere statice. Acest lucru are în mod natural rezultate excelente pentru optimizarea SEO și oferă un impuls semnificativ în interactivitate. Dar există și unele dezavantaje.

În timp ce Vue are un canal persistent pe partea client, Nuxt nu. Deci, interacțiunea cu DOM-ul după ce Nuxt a redat deja pagina s-ar putea dovedi dificilă.

Site-ul Documente GitHub

#6 – SvelteKit

SvelteKit

Svelte are statutul de copil cool în era actuală a front-end-ului, iar echipa lucrează la SvelteKit – un cadru full-stack care se bazează pe partea de sus (îl înlocuiește) Sapper. SvelteKit se remarcă printr-un sistem complex de rutare bazat pe fișiere.

Scopul principal al SvelteKit este de a accelera dezvoltarea web prin eliminarea unora dintre blocajele mai frecvente. Prin implementarea Snowpack, Vite și alte instrumente externe – SvelteKit poate oferi o experiență de dezvoltare bogată în funcții.

În cele din urmă, SvelteKit implementează procesul de hidratare. Abilitatea de a păstra starea activă pentru elementele DOM care au fost randate pe partea serverului.

Site-ul Documente GitHub

#7 – Fastify

Fastify

Cadrul Fastify se referă la performanță, iar benchmark-urile individuale au arătat că poate gestiona până la 60.000 de solicitări pe secundă. Puteți extinde Fastify (pe deasupra instrumentelor deja excelente) prin Hooks and Plugins. Și, în ciuda faptului că nu este un cadru TypeScript, Fastify acceptă TypeScript.

Vorbind despre pluginuri, o mulțime de dezvoltare Fastify are loc prin intermediul acestora. Atât de mult încât Fastify are un depozit oficial atât pentru pluginuri create de comunitate, cât și pentru pluginuri realizate de echipa Fastify. Ideea din spatele pluginurilor este că oferă o arhitectură de sistem curată și elimină nevoia de a trece la cadre alternative. Acest lucru face ca Fastify să fie deosebit de util pentru construirea de API-uri cu costuri reduse, cu performanțe puternice în timp real.

Site-ul Documente GitHub

#8 – Redwood

Lemn rosu

Îți plac API-urile? Îți place JAMStack? Dacă răspunsul este da, vei iubi RedwoodJS. Este un cadru de aplicații web complet care utilizează o mulțime de tehnologii moderne. Și aceste tehnologii includ GraphQL, Prisma, Storybook și Jest. Partea frontală din Redwood este construită pe React și aveți, de asemenea, suport complet pentru TypeScript.

Site-ul Documente GitHub

#9 – Express

Cadrul Express Node.js

A căzut Express din grație? Nu chiar. Cadrul este încă extrem de popular și iubit, doar nu la fel de mult ca ceilalți jucători mari. Pentru o echipă care lucrează cu Express de ani de zile, nu are sens să treci la altceva, deoarece nu există probleme fundamentale. O mulțime de cadre se bazează încă pe Express.

Site-ul Documente GitHub

#10 – Adonis

Adonis

Adonis este un cadru MVC back-end tip TypeScript, creat pentru Node.js. Rețineți că, în ciuda faptului că Adonis se descrie ca un cadru back-end, este la fel de bine să faceți o dezvoltare full-stack cu el.

Unul dintre principalele motive pentru care dezvoltatorii iubesc Adonis este suportul său nativ pentru TypeScript.

Dar, de asemenea, suport pentru ORM (Object Relational-Mapping), practici de securitate puternice și documentație ușor de urmărit.

Nu în ultimul rând, Adonis se integrează cu ecosistemul Node.js la un nivel fundamental, astfel încât să ai experiență anterioară în dezvoltarea Node este aproape o necesitate.

Site-ul Documente GitHub

#11 – Keystone

Keystone

Ultimul cadru Node.js din această listă este Keystone. Și la fel ca Express, există aproape din prima zi. Acest lucru face din Keystone un cadru matur, oferind instrumente concrete și integrări pentru a crea o experiență prietenoasă pentru dezvoltatori.

Unele caracteristici notabile (dintre care multe au fost rafinate de-a lungul anilor) din Keystone includ CRUD automatizat prin API-ul GraphQL, pe care îl puteți extinde în continuare. În plus, puteți crea și implementa propriile componente React.js.

Keystone este utilizat în diverse domenii de dezvoltare și funcționează bine cu aplicații mobile, site-uri web practice, vitrine de comerț electronic și multe altele.

Site-ul Documente GitHub

Meta, nativ și un pic de Headless

A trecut destul de mult timp de când am făcut ultima dată o prezentare generală ca aceasta. Lucrurile erau mult mai simple pe atunci și, în timp ce Compound și Locomotive nu se găsesc nicăieri, este plăcut să văd că Keystone și Express își fac drum prin testul timpului.

De asemenea, pot spune că există destul de multă zgomot în jurul Node.js. Cred că unii oameni sunt nefericiți și se simt blocați cu asta. Și ideea managerilor de pachete (npm) începe să îmbătrânească, pe măsură ce pachetele continuă să adauge grămezi peste grămezi de dimensiuni de pachete inutile la un proiect altfel la scară mică.

Dar, oricare ar fi cazul, popularitatea fiecărui cadru vorbește de la sine. În general, dezvoltatorii sunt fericiți să lucreze cu meta cadre și ar putea avea de-a face cu faptul că eficientizează și dezvoltarea full-stack. Acest lucru elimină în mare parte nevoia de a reînvăța un nou cadru preferat de la zero.