Umbhali we-Node.js wethule inkundla evikelekile ye-JavaScript i-Deno 1.0

Ngemva kweminyaka emibili yentuthuko kwethulwe ukukhululwa kokuqala okukhulu I-Deno 1.0, inkundla yokwenza uzimele wodwa wezinhlelo zokusebenza ku-JavaScript ne-TypeScript, engasetshenziswa ukudala izibambi ezisebenza kuseva. Isiteji sakhiwe nguRyan Dahl (Ryan Dahl), umdali we-Node.js. NjengeNode.js, iDeno isebenzisa injini yeJavaScript V8, ephinde isetshenziswe kuziphequluli ezisekelwe ku-Chromium. Ngesikhathi esifanayo, i-Deno ayiyona imfoloko ye-Node.js, kodwa iphrojekthi entsha edalwe kusukela ekuqaleni. Ikhodi yephrojekthi isatshalaliswa ngu ngaphansi kwelayisense ye-MIT. Imihlangano ilungisiwe ye-Linux, Windows ne-macOS.

Inombolo yenguqulo ebalulekile ihlotshaniswa nokuzinziswa kwama-API ku-Deno namespace, anesibopho sokusebenzelana kwezinhlelo zokusebenza ne-OS. Izixhumanisi zesoftware ezinazo kuze kube manje ayizinzile, zifihliwe ngokuzenzakalelayo futhi zitholakala kuphela uma zisebenza ngemodi ethi “--unstable”. Njengoba kwakhiwa izinguqulo ezintsha, ama-API anjalo azozinza kancane kancane. I-API endaweni yamagama yomhlaba wonke, ehlanganisa imisebenzi evamile efana ne-setTimeout() kanye ne-fetch(), iseduze kakhulu ne-API yeziphequluli zewebhu ezivamile futhi ithuthukiswa ngokuhambisana namazinga eWebhu weziphequluli. Ama-API ahlinzekwe yi-Rust, asetshenziswa ngokuqondile kukhodi yesikhulumi, kanye nesixhumi esibonakalayo sokuthuthukisa ama-plugin wesikhathi sokusebenza se-Deno, awakakaqiniswa futhi ayaqhubeka nokuthuthukisa.

Izisusa ezibalulekile zokudala inkundla entsha ye-JavaScript kwakuyisifiso sokuqeda amaphutha omqondo, kuvume ekwakhiweni kweNode.js, futhi unikeze abasebenzisi indawo ephephe kakhudlwana. Ukuze kuthuthukiswe ukuvikeleka, injini ye-V8 ibhalwe nge-Rust, egwema ubungozi obuningi obuvela ekukhohlisweni kwenkumbulo yezinga eliphansi, njengokufinyelela ngemva kwamahhala, izinkomba eziyinull, kanye nokudlulela kwebhafa. Inkundla isetshenziselwa ukucubungula izicelo ngemodi engavimbeli Tokyo, nayo ibhalwe ngeRust. I-Tokio ikuvumela ukuthi udale izinhlelo zokusebenza ezisebenza kahle kakhulu ngokusekelwe ekwakhiweni okuqhutshwa umcimbi, ukusekela ukucutshungulwa okuningi nokucubungula izicelo zenethiwekhi ngemodi ye-asynchronous.

main izici I-Deno:

  • Ukucushwa okuzenzakalelayo okugxile ekuvikelekeni. Ukufinyelela ifayela, inethiwekhi, kanye nokufinyelela kokuguquguquka kwemvelo kukhutshazwa ngokuzenzakalela futhi kufanele kunikwe amandla ngokusobala. Izinhlelo zokusebenza ngokuzenzakalela zisebenza ezindaweni ezihlukanisiwe ze-sandbox futhi azikwazi ukufinyelela amakhono esistimu ngaphandle kokunikeza izimvume ezicacile;
  • Usekelo olwakhelwe ngaphakathi lwe-TypeScript ngale kwe-JavaScript. I-TypeScript compiler evamile isetshenziselwa ukuhlola izinhlobo futhi ikhiqize i-JavaScript, eholela ekushayeni kokusebenza okuqhathaniswa nokuhlukaniswa kwe-JavaScript ku-V8. Ngokuzayo, sihlela ukulungiselela ukuqaliswa kwethu kwesistimu yokuhlola uhlobo lwe-TypeScript, oluzothuthukisa ukusebenza kokucubungula kwe-TypeScript nge-oda lobukhulu;
  • Isikhathi sokusebenza siza ngendlela yefayela elilodwa elisebenzisekayo eliqukethwe ngokwalo (“deno”). Ukusebenzisa izinhlelo zokusebenza usebenzisa i-Deno kwanele download endaweni yesikhulumi kukhona ifayela elilodwa elisebenzisekayo, elilinganiselwa ku-20 MB ngobukhulu, elingenakho ukuncika kwangaphandle futhi alidingi ukufakwa okukhethekile ohlelweni. Ngaphezu kwalokho, i-deno ayilona uhlelo lokusebenza lwe-monolithic, kodwa iqoqo lamaphakheji e-crate ku-Rust (i-deno_core, ukugqwala_v8), engasetshenziswa ngokwehlukana;
  • Lapho uqala uhlelo, kanye nokulayisha amamojula, ungasebenzisa ikheli le-URL. Isibonelo, ukuze uqalise uhlelo lwe-welcome.js, ungasebenzisa umyalo othi “deno https://deno.land/std/examples/welcome.js”. Ikhodi evela ezinsizeni zangaphandle iyalandwa futhi ifakwe kunqolobane kusistimu yendawo, kodwa ayibuyekezwa ngokuzenzakalelayo (ukubuyekeza kudinga ukusebenzisa ngokusobala uhlelo lokusebenza ngefulegi elithi “--reload”);
  • Ukucubungula okusebenzayo kwezicelo zenethiwekhi nge-HTTP ezinhlelweni zokusebenza; inkundla yakhelwe ukudala izinhlelo zokusebenza zenethiwekhi ezisebenza kahle;
  • Ikhono lokudala izinhlelo zokusebenza zewebhu zomhlaba wonke ezingenziwa kokubili ku-Deno kanye nesiphequluli sewebhu esivamile;
  • Ukutholakala isethi ejwayelekile yamamojula, ukusetshenziswa okungadingi ukubophezela kokuncika kwangaphandle. Amamojula asuka eqoqweni elijwayelekile ahlolwe okwengeziwe nokuhambisana nokuhlolwa;
  • Ngaphezu kwesikhathi sokusebenza, inkundla ye-Deno iphinde isebenze njengomphathi wephakheji futhi ikuvumela ukuthi ufinyelele amamojula nge-URL ngaphakathi kwekhodi. Isibonelo, ukuze ulayishe imojuli, ungacacisa kukhodi ethi "ngenisa * njengelogi ukusuka ku-"https://deno.land/std/log/mod.ts". Amafayela alandwe eziphakelini zangaphandle nge-URL afakwe kunqolobane. Ukubophezela kuzinguqulo zemojula kunqunywa ngokucacisa izinombolo zenguqulo ngaphakathi kwe-URL, isibonelo, “https://unpkg.com/[i-imeyili ivikelwe]/dist/liltest.js";
  • Isakhiwo sihlanganisa uhlelo oludidiyelwe lokuhlola ukuncika (umyalo “we-deno info”) kanye nensizakalo yokufometha ikhodi (deno fmt);
  • Zonke izikripthi zohlelo lokusebenza zingahlanganiswa zibe ifayela elilodwa le-JavaScript.

Umehluko ku-Node.js:

  • I-Deno ayisebenzisi imenenja yephakheji ye-npm
    futhi ayiboshelwe kumakhosombe, amamojula aqondiswa nge-URL noma ngendlela yefayela, futhi amamojula ngokwawo angafakwa kunoma iyiphi iwebhusayithi;
  • I-Deno ayisebenzisi i-"package.json" ukuze ichaze amamojula;
  • Umehluko we-API, zonke izenzo ze-asynchronous ku-Deno zibuyisela isithembiso;
  • I-Deno idinga incazelo ecacile yazo zonke izimvume ezidingekayo zamafayela, inethiwekhi nokuguquguquka kwendawo;
  • Wonke amaphutha anganikezwanga izibambi aholela ekunqanyulweni kwesicelo;
  • I-Deno isebenzisa isistimu yemojula ye-ECMAScript futhi ayisekeli idinga();
  • Iseva ye-HTTP eyakhelwe ngaphakathi ye-Deno ibhalwe ku-TypeScript futhi isebenza phezu kwamasokhethi omdabu e-TCP, kuyilapho iseva ye-Node.js HTTP ibhalwe ngo-C futhi inikeza ukubophezela kwe-JavaScript. Abathuthukisi beDeno bagxile ekwandiseni sonke isendlalelo sesokhethi ye-TCP futhi banikeze isixhumi esibonakalayo esijwayelekile. Iseva ye-Deno HTTP ihlinzeka ngokuphuma okuphansi kodwa iqinisekisa ukubambezeleka okubikezelwe okuphansi. Isibonelo, ekuhlolweni, uhlelo lokusebenza olulula olusekelwe kuseva ye-Deno HTTP lukwazile ukucubungula izicelo eziyizinkulungwane ezingu-25 ngomzuzwana ngokubambezeleka okukhulu kwama-millisecond angu-1.3. Ku-Node.js, isicelo esifanayo sicubungule izicelo eziyizinkulungwane ezingu-34 ngomzuzwana, kodwa ukubambezeleka kwakusukela ku-2 kanye ne-300 millisecond.
  • I-Deno ayihambisani namaphakheji we-Node.js (NPM), kodwa ithuthukiswa ngokuhlukana interlayer ukuze ihambisane nomtapo wezincwadi ojwayelekile we-Node.js, njengoba ithuthuka, izicelo eziningi ezibhalelwe i-Node.js zizokwazi ukusebenza ku-Deno.
  • Source: opennet.ru

Engeza amazwana