Munyori weNode.js akapa yakachengeteka JavaScript chikuva Deno 1.0

Mushure memakore maviri ebudiriro yakaunzwa kusunungurwa kukuru kwekutanga Ndipe 1.0, chikuva chekumira-chega kwekuita kwezvikumbiro muJavaScript uye TypeScript, iyo inogona kushandiswa kugadzira vanobata vanomhanya pane sevha. Iyi puratifomu inogadzirwa naRyan Dahl (Ryan Dahl), mugadziri weNode.js. SeNode.js, Deno inoshandisa injini yeJavaScript V8, iyo inoshandiswa zvakare muChromium-based browsers. Panguva imwecheteyo, Deno haisi forogo yeNode.js, asi ipurojekiti itsva yakagadzirwa kubva pakutanga. Project code inoparadzirwa ne pasi peMIT rezinesi. Assemblies yakagadzirirwa yeLinux, Windows uye macOS.

Iyo yakakosha vhezheni nhamba inodyidzana nekudzikamiswa kweiyo APIs muDeno namespace, iyo ine basa rekudyidzana kwemaapplication neOS. Mashandisirwo esoftware ane kusvika parizvino isina kugadzikana, yakavanzwa nekusarudzika uye inowanikwa chete kana ichimhanya mu "--isina kugadzikana" maitiro. Sezvo shanduro itsva dzichigadzirwa, maAPI akadaro anozogadzikana zvishoma nezvishoma. Iyo API iri munzvimbo yepasirese mazita, iyo inosanganisira mabasa akajairwa akadai setTimeout() uye fetch(), iri padyo sezvinobvira kune API yeakajairwa mabhurawuza ewebhu uye inogadzirwa zvinoenderana neWebhu zviyero zvebrowser. Iyo APIs inopiwa neRust, iyo inoshandiswa zvakananga mukodhi yepuratifomu, pamwe chete neshanduro yekugadzira plugins yeDeno runtime, haisati yasimbiswa uye inoramba ichikura.

Chinangwa chikuru chekugadzira chikuva chitsva cheJavaScript chaive chishuwo chekubvisa zvikanganiso zvepfungwa, akabvuma muNode.js architecture, uye inopa vashandisi nzvimbo yakachengeteka zvikuru. Kuti uvandudze kuchengetedzeka, injini yeV8 yakanyorwa muRust, iyo inodzivirira akawanda ekusagadzikana anomuka kubva kune yakaderera-level memory manipulation, senge mushure-yemahara kupinda, null pointer dereferences, uye buffer overruns. Ipuratifomu inoshandiswa kugadzirisa zvikumbiro mune isiri-yekuvharisa mode Tokyo, yakanyorwawo muna Rust. Tokio inokutendera iwe kuti ugadzire yakakwirira-inoshanda zvikumbiro zvichibva pane inofambiswa nechiitiko chivakwa, ichitsigira akawanda-tambo uye kugadzirisa zvikumbiro zvetiweki mune asynchronous mode.

chikuru maficha Deno:

  • Chengetedzo-yakatarisana default configuration. Kuwana faira, networking, uye kuwana kune zvakatipoteredza zvinosiyana zvinodzimwa nekusarudzika uye zvinofanirwa kugoneswa zvakajeka. Zvishandiso nekusarudzika zvinomhanya munzvimbo dziri dzoga dzebhokisi rejecha uye haugone kuwana masimba ehurongwa pasina kupa mvumo dzakajeka;
  • Yakavakirwa-mukati rutsigiro rweTypeScript kupfuura JavaScript. Iyo yakajairwa TypeScript compiler inoshandiswa kutarisa mhando uye kugadzira JavaScript, iyo inotungamira mukurova kwekuita kana ichienzaniswa neJavaScript parsing muV8. Mune ramangwana, isu tinoronga kugadzirira isu pachedu kuita kweTypeScript mhando yekutarisa system, iyo inovandudza TypeScript yekugadzirisa mashandiro nehurongwa hwehukuru;
  • Runtime inouya iri muchimiro cheimwe chete-ine-ine inogadziriswa faira ("deno"). Kuita maapplication uchishandisa Deno zvakakwana download nokuda kwepuratifomu yayo kune faira rimwe chete rinogoneka, rinenge 20 MB muhukuru, iyo isina zvekunze zvinotsamira uye haidi chero yakakosha kuiswa pane system. Uyezve, deno haisi monolithic application, asi muunganidzwa wemakrete mapakeji muRust (deno_core, zvine ngura_v8), iyo inogona kushandiswa zvakasiyana;
  • Paunenge uchitanga chirongwa, pamwe nekurodha mamodule, unogona kushandisa URL kero. Semuenzaniso, kuti umhanye chirongwa chekugamuchira.js, unogona kushandisa murairo "deno https://deno.land/std/examples/welcome.js". Kodhi kubva kune zvekunze zviwanikwa inotorwa uye yakavharirwa pane yemuno sisitimu, asi haimbofa yakagadziridzwa otomatiki (kugadzirisa kunoda kumhanyisa application ne "--reload" mureza);
  • Kunyatsogadzirisa zvikumbiro zvetiweki kuburikidza neHTTP mumashandisirwo; chikuva chakagadzirirwa kugadzira yakakwirira-inoshanda network application;
  • Iko kugona kugadzira universal web applications izvo zvinogona kuitwa zvese muDeno uye mune yenguva dzose web browser;
  • Kuwanika standard seti yemamodule, kushandiswa kwacho kusingadi kusungirirwa kune zvekunze zvinotsamira. Mamodules kubva muunganidzwa wakajairwa akawana imwe ongororo uye kuenderana kuyedzwa;
  • Pamusoro penguva yekumhanya, iyo Deno chikuva inoitawo semaneja wepakeji uye inobvumidza iwe kuti uwane mamodule ne URL mukati mekodhi. Semuenzaniso, kurodha module, unogona kutsanangura mune kodhi "import * selog kubva "https://deno.land/std/log/mod.ts". Mafaira akatorwa kubva kune ekunze maseva kuburikidza neURL akachengetwa. Kusunga kumamodule shanduro kunotemwa nekudoma nhamba dzevhezheni mukati meURL, semuenzaniso, "https://unpkg.com/[email inodzivirirwa]/dist/liltest.js";
  • Iyo dhizaini inosanganisira yakabatanidzwa kutsamira yekuongorora system (iyo "deno info" command) uye utility yekodhi fomati (deno fmt);
  • Zvese zvinyorwa zvekushandisa zvinogona kusanganiswa kuita imwe JavaScript faira.

Misiyano kubva kuNode.js:

  • Deno haishandise npm package maneja
    uye haina kusungirirwa kune repositories, modules inogadziriswa kuburikidza neURL kana nefaira nzira, uye ma modules pachawo anogona kuiswa pane chero webhusaiti;
  • Deno haishandisi "package.json" kutsanangura mamodule;
  • API musiyano, ese asynchronous zviito muDeno zvinodzosera vimbiso;
  • Deno inoda tsananguro yakajeka yemvumo dzese dzinodiwa dzemafaira, network uye nharaunda zvinosiyana;
  • Zvikanganiso zvese zvisina kupihwa nevabati zvinotungamira kumisa application;
  • Deno inoshandisa iyo ECMAScript module system uye haitsigire zvinoda();
  • Deno's yakavakirwa-mukati HTTP sevha yakanyorwa muTypeScript uye inomhanya pamusoro peyakazvarwa TCP sockets, nepo Node.js HTTP server yakanyorwa muC uye inopa zvinosungirwa kuJavaScript. Vagadziri veDeno vakatarisa pakugadzirisa iyo yese TCP socket layer uye nekupa yakawedzera kuenderana. Deno HTTP Server inopa yakaderera throughput asi inovimbisa fungidziro yakaderera latency. Semuyenzaniso, muyedzo, yakareruka application yakavakirwa paDeno HTTP server yakakwanisa kuita zviuru makumi maviri nezvishanu zvikumbiro pasekondi ine yakanyanya latency ye25 milliseconds. MuNode.js, chikumbiro chakafanana chakagadziridzwa zviuru makumi matatu nemana zvikumbiro pasekondi, asi latencies yakabva ku1.3 uye 34 milliseconds.
  • Deno haienderani nemapakeji eNode.js (NPM), asi iri kugadzirwa zvakasiyana interlayer kuti ienderane neraibhurari yeNode.js, sezvainokura, mamwe maapplication akanyorerwa Node.js achakwanisa kushanda muDeno.
  • Source: opennet.ru

Voeg