Node.js var būt labi izveidots, taču neaizmirstiet par Deno — līdzīgu sistēmu no tā paša izstrādātāja.

Node.js ir ilgstoša sistēma, kas ļauj rakstīt servera puses kodu JavaScript. Sākotnēji ietvars tika izlaists 2009. gadā, un pēdējos gados tā ir piedzīvojusi ievērojamu pieaugumu un eksplozīvu izmantošanu.

Deno atšķiras formatēšanas stils, importēšanas sintakse un pakotņu pārvaldība, taču viens un tas pats inženieris ir izveidojis šīs konkurējošās sistēmas vienā un tajā pašā dzinējā.

Mūsdienās Deno pastāv pietiekami ilgi, lai nopelnītu vietu daudzu izstrādātāju kaudzēm. Ja vēlaties sākt jaunu JavaScript projektu, iespējams, rodas jautājums, kura ir pareizā izvēle.

Node un Deno funkcijas

Gandrīz deviņus gadus pēc Node izlaišanas tā izstrādātājs Raiens Dāls paziņoja par jaunu projektu: Deno. Ja Node kādreiz bija vienīgā servera puses JavaScript iespēja, Deno mums ir piedāvājis alternatīvu.

Node.js un Deno daudzējādā ziņā ir diezgan līdzīgi. Lielākā daļa atšķirību starp abiem rodas zem pārsega. Vietās, kur Node darbojas ar V8 JavaScript dzinēju, Deno pārspēj pēc pasūtījuma rakstītu dzinēju, kas iebūvēts Rust, īpaši koncentrējoties uz veiktspēju.

instagram viewer

Lielākā daļa galveno atšķirību starp abām ir balstītas uz to, kuras funkcijas atbalsta katra valoda. Moduļi, šķipsnas, mašīnraksts un pakotņu pārvaldība tiek apstrādāta diezgan atšķirīgi.

Moduļu importēšana: CommonJS vs. ES

Node.js pēc noklusējuma izmanto CommonJS moduļus ar prasību() sintaksi. Node ļauj to mainīt, mainot konfigurācijas failus, lai tā vietā izmantotu ECMAScript moduļus ar importa () sintaksi, ja viņi to vēlas.

// Šis ir derīgs CommonJS moduļa imports pakalpojumā Node.js
var _ = pieprasīt("lodash");

// Šis ir derīgs ECMAScript moduļa imports pakalpojumā Node.js
imports _ no'lodash';

Pastāv zināma ierobežota sadarbspēja starp diviem ES moduļu ielādes veidiem, un dažus ECMAScript moduļus var iekļaut, izmantojot prasību () sintaksi. Katrs importēšanas veids moduļus apstrādā nedaudz atšķirīgi, taču vairumā gadījumu darbosies jebkurš no tiem.

Tas ļauj jums izvēlēties vēlamo metodoloģiju ārējo moduļu iekļaušanai, veidojot projektu.

Deno izmanto atšķirīgu pieeju ārējo moduļu iekļaušanai projektā. Deno visiem moduļiem izmanto include() sintaksi, tomēr atšķirībā no Node importēšanas, Deno importētie moduļi var būt no jebkuras vietas. Šīs atrašanās vietas var ietvert pat attālos satura piegādes tīklus (CDN).

// Šis ir derīgs importa paziņojums Deno
imports" https://deno.land/x/[email protected]/dist/lodash.js";

Tas ļauj importēt atkarības no jebkuras vietas, lokālas vai attālas, piedāvājot daudz lielāku elastību. Ja vēlaties strādāt ar tradicionālo prasību sintakse no Node.js, kā risinājumu varat ierakstīt savu polifillēšanas prasību Deno.

Atbalsts TypeScript kodam

Dažu pēdējo gadu laikā TypeScript ir pieaudzis popularitātes pieaugums, un nav pazīmju, ka tuvākajā laikā tas palēnināsies. Tipam droša koda dinamikas ieviešana JavaScript ir izrādījies ļoti veiksmīgs pasākums.

Mūsdienās jauna TypeScript projekta iestatīšana vai esošā Node.js projekta konvertēšana uz TypeScript ir vienkārša, kaut arī nedaudz laikietilpīga.

TypeScript atbalsta pievienošana ir kļuvusi pietiekami populāra, tāpēc lielākajai daļai mūsdienu sistēmu tagad ir kāds TypeScript atbalsts. Angular bija līderis ar jau iebūvētu TypeScript atbalstu. Šodien pat React ir metodes, kā iestatīt TypeScript atbalstu.

Deno tika izstrādāts ar iekļautu TypeScript atbalstu, lai palīdzētu uzlabot jūsu produktivitāti. Izmantojot jau iebūvēto TypeScript atbalstu, Deno trūkst pat minimālās iestatīšanas, kas nepieciešamas Node.js, lai izstrādātu drukātu JavaScript kodu.

Ja jums patīk TypeScript, varat ātri un vienkārši sākt darbu, izmantojot Deno atbalstu, taču, iespējams, pietrūkst dažas standarta Node.js bibliotēkas. Lai gan Deno piedāvā ātrāku iestatīšanu, attīstītas ekosistēmas trūkums var kavēt jūsu veidošanas procesu.

Saplūkšana, lai ģenerētu tīrīšanas kodu

Node.js piedāvā plašu līkumu klāstu, no kuriem izvēlēties. Ir daudz labi izstrādātu opciju, kuras varat ātri un viegli instalēt un konfigurēt. Tomēr, līdzīgi kā TypeScript gadījumā, jums būs nedaudz jāpastrādā, lai sāktu darbu ar izvēlēto līniju.

Deno koda formatēšanā izvēlējās nedaudz atšķirīgu ceļu, piedāvājot iebūvētu .js, .ts un .md failu izkliedēšanas risinājumu. Palaižot komandu "deno fmt", visi faili pašreizējā darba direktorijā tiks automātiski formatēti.

Ja neesat noklusējuma lintera cienītājs, ir iespēja instalēt un palaist savu izvēlēto formatēšanas sistēmu, tāpat kā to darītu ar Node. Sistēmu pārslēgšana ir vienkārša, jo Deno linter darbojas, izmantojot ārēju komandu, nevis kā daļu no noklusējuma izveides cauruļvada.

Ja apsverat iespēju nomainīt Deno linteri pret jaunu sistēmu, jums jāapzinās iespējamās saderības problēmas un jāpatur tās prātā. Lielākajai daļai JavaScript linteru būs nepieciešama Node instalēšana, lai tā darbotos, pat ja tā nav sistēma, kurā darbojas formatējamais projekts.

Pakešu pārvaldība

Node pakotņu pārvaldnieks (npm) ir ļoti labi pazīstams mūsdienu izstrādātāju vidū. Balstoties uz līdzīgu sistēmu, piemēram, Python’s Pip un Ruby’s RubyGems, panākumiem, npm ātri ieguva popularitāti.

Ilgstošas ​​bažas izraisa konkurējošu vadītāju, piemēram, pNPm un Yarn, attīstību. Dažās situācijās jūs pat varat izvēlēties instalēt un lietot vairāki pakotņu pārvaldnieki ar Node.

Šodien, ja izvēlaties izstrādāt node.js, jūs esat nedaudz izlutināts, kad runa ir par pakotņu pārvaldību. Node lepojas ar plaukstošu ekosistēmu ar daudzām pakotņu instalēšanas iespējām. Pašlaik galvenajā npm reģistrā ir vairāk nekā 1,3 miljoni.

Npm ļauj publicēt savas pakotnes, kas ved uz satriecoši lielu bibliotēku.

Deno izmantoja pavisam citu pieeju pakotņu pārvaldībai. Tam nav un nav nepieciešama pakotņu pārvaldības sistēma. Tā vietā Deno ļauj tieši importēt ārējās bibliotēkas ne tikai no izstrādātāja sistēmas, bet arī no jebkuras vietas, kas pieņem HTTP pieprasījumus.

Tas ļauj importēt bibliotēkas no Deno repozitorija vai jebkura CDN tiešsaistē tieši no to kodu bāzes.

Deno oficiālais pakotņu reģistrs nav tik pilnībā izstrādāts kā Node, pateicoties Node gandrīz deviņus gadus ilgam sākumam. Iespēja importēt bibliotēkas no jebkuras vietas neļauj jums ciest no sekām, ko rada ekosistēma, kurai vēl nav bijusi iespēja izaugt līdz pilnam izmēram.

Kopienas iesaiste Node un Deno

Sākotnēji 2009. gadā izlaida Raiens Dāls, Node ir bijis pietiekami daudz laika, lai izstrādātāju kopiena varētu iesaistīties. Tā kā tā oficiālajā krātuvē ir jūsu rīcībā ir daudz agrīno izmantotāju un ievērojama pakotņu bibliotēka, kas ir jūsu rīcībā, sabiedrībai ir bijusi liela nozīme Node.js izaugsmē.

Pati platforma ir pilnībā atvērtā pirmkoda, ko uztur OpenJS fonds un daudzi līdzstrādnieki.

Deno tika izlaists 2018. gadā, gandrīz 9 gadus pēc Node. To galvenokārt izstrādāja Raiens Dāls, lai novērstu bažas un nožēlu, kas viņam radās saistībā ar Node ieviešanu. Mūsdienās Deno ir arī atvērts avots saskaņā ar MIT licenci.

Ar daudziem līdzstrādniekiem un pieaugošo savu krātuvi Deno ir saņēmis lielu sabiedrības interesi.

Divu ietvaru veiktspējas bažas

Kodētājiem, kurus interesē relatīvās veiktspējas atšķirības starp abām ietvariem, starp tām ir maz atšķirību. Deno pielāgotais dzinējs, kas rakstīts ar Rust, pārklāj pamata sistēmu, kas joprojām ir V8 dzinējs. Galu galā gan Deno, gan Node gandrīz visos gadījumos ir salīdzināmi veiktspējas ziņā.

Šķiet, ka tas tā ir neatkarīgi no tā, vai iegūtais kods darbojas serverī vai klientā. Tā kā veiktspējas ienesīgums netiek ņemts vērā, pieņemot lēmumu, jūs varat brīvi izvēlēties sistēmu, kurā jūtaties visērtāk.

Raiens Dāls, abu ietvaru radītājs, piedāvāja dažādus iemeslus Deno radīšanai. Lai gan viņš minēja vairākus faktorus, sākot no nespējas pareizi iekļaut solījumus daudzās API un beidzot ar viņa izvēlēto veidošanas sistēmu, veiktspēja nebija daļa no procesa.

Node vs Deno: kura ir pareizā izvēle?

Zem pārsega gan Node.js, gan Deno ir ļoti līdzīgi ietvari. Abi izpilda JavaScript, izmantojot V8 dzinēju ar līdzīgu veiktspēju un iespējām. Lai gan sintaksē, pakotņu pārvaldībā un iebūvētajā atbalstā ir dažas atšķirības, jūsu izvēle, kuru izmantot, lielā mērā ir atkarīga no jūsu vēlmēm.

Node lepojas ar satriecoši lielu ekosistēmu, taču Deno ļauj iegūt atkarības no jebkura avota. Galu galā jums būs rūpīgi jāizpēta savs izstrādes stils un jānosaka, kura platforma jums ir piemērotāka.