Marubucin Node.js ya gabatar da amintaccen dandalin JavaScript Deno 1.0

Bayan shekaru biyu na ci gaba gabatar babban saki na farko Daga 1.0, dandamali don aiwatar da aikace-aikacen kai tsaye a cikin JavaScript da TypeScript, waɗanda za a iya amfani da su don ƙirƙirar masu sarrafawa waɗanda ke gudana akan sabar. Ryan Dahl ne ya haɓaka dandalin (Ryan Dahl), mahaliccin Node.js. Kamar Node.js, Deno yana amfani da injin JavaScript V8, wanda kuma ake amfani dashi a cikin masu binciken Chromium. A lokaci guda, Deno ba cokali mai yatsa na Node.js bane, amma sabon aikin ne da aka kirkira daga karce. Lambar aikin rarraba ta ƙarƙashin lasisin MIT. Majalisai shirya don Linux, Windows da macOS.

Mahimmin lambar sigar tana da alaƙa da daidaitawar APIs a cikin sararin sunan Deno, waɗanda ke da alhakin hulɗar aikace-aikace tare da OS. Abubuwan mu'amalar software waɗanda ke da zuwa yanzu ba a daidaita ba, ana ɓoye su ta tsohuwa kuma ana samun su kawai lokacin da ake aiki a cikin yanayin "--unstable". Yayin da aka samar da sabbin nau'ikan, irin waɗannan APIs ɗin za su kasance a hankali a hankali. API ɗin a cikin sararin sunan duniya, wanda ya haɗa da ayyuka gama gari kamar setTimeout() da debo(), yana kusa da API na masu binciken gidan yanar gizo na al'ada kuma an haɓaka shi daidai da ƙa'idodin Yanar gizo don masu bincike. APIs ɗin da Rust ya bayar, waɗanda ake amfani da su kai tsaye a cikin lambar dandamali, da kuma mahaɗa don haɓaka plugins don lokacin aikin Deno, har yanzu ba a daidaita su ba kuma suna ci gaba da haɓakawa.

Mabuɗin dalilai na ƙirƙirar sabon dandalin JavaScript shine sha'awar kawar da kurakuran tunani, shigar a cikin gine-ginen Node.js, da kuma samar wa masu amfani da muhalli mafi aminci. Don inganta tsaro, an rubuta injin V8 a cikin Rust, wanda ke guje wa yawancin lahani da ke tasowa daga ƙananan ƙananan ƙwaƙwalwar ajiya, kamar samun damar bayan-free, rashin kuskuren maƙasudi, da buffer overruns. Ana amfani da dandamali don aiwatar da buƙatun a yanayin da ba tare da toshewa ba Tokyo, kuma an rubuta shi da Tsatsa. Tokio yana ba ku damar ƙirƙira manyan aikace-aikacen aikace-aikace dangane da gine-ginen da ke haifar da aukuwa, tallafawa masu zare da yawa da sarrafa buƙatun hanyar sadarwa a yanayin asynchronous.

Main fasali Deno:

  • Tsarin tsoho mai tushen tsaro. Samun fayil, hanyar sadarwa, da samun dama ga masu canjin yanayi an kashe su ta tsohuwa kuma dole ne a kunna su a sarari. Aikace-aikace ta tsohuwa suna gudana a keɓance mahallin akwatin sandbox kuma ba za su iya samun damar tsarin damar ba tare da bayar da takamaiman izini ba;
  • Ginin tallafi don TypeScript bayan JavaScript. Ana amfani da daidaitaccen mai tarawa TypeScript don bincika nau'ikan da samar da JavaScript, wanda ke haifar da bugun aiki idan aka kwatanta da fassarar JavaScript a cikin V8. A nan gaba, muna shirin shirya namu aiwatar da tsarin duba nau'in TypeScript, wanda zai inganta aikin sarrafa TypeScript ta tsari mai girma;
  • Lokacin gudu yana zuwa a cikin nau'in fayil ɗin aiwatarwa mai sarrafa kansa guda ɗaya ("deno"). Don gudanar da aikace-aikace ta amfani da Deno ya isa saukewa don dandamalin sa akwai fayil guda ɗaya da za a iya aiwatarwa, girman girman 20 MB, wanda ba shi da abin dogaro na waje kuma baya buƙatar shigarwa na musamman akan tsarin. Haka kuma, deno ba aikace-aikacen monolithic bane, amma tarin fakitin akwatuna ne a cikin Rust (deno_core, rutsi_v8), wanda za'a iya amfani dashi daban;
  • Lokacin fara shirin, kazalika don loda kayayyaki, zaku iya amfani da adireshin URL. Misali, don gudanar da shirin welcome.js, zaku iya amfani da umarnin "deno https://deno.land/std/examples/welcome.js". Ana zazzage lamba daga albarkatun waje kuma ana adana su akan tsarin gida, amma ba a sabunta ta atomatik (sabuntawa yana buƙatar aiwatar da aikace-aikacen a sarari tare da tutar “--sake saukewa”);
  • Ingantacciyar sarrafa buƙatun hanyar sadarwa ta hanyar HTTP a cikin aikace-aikace; an ƙera dandamali don ƙirƙirar aikace-aikacen cibiyar sadarwa mai inganci;
  • Ikon ƙirƙirar aikace-aikacen yanar gizo na duniya waɗanda za'a iya kashe su duka a cikin Deno kuma a cikin mai binciken gidan yanar gizo na yau da kullun;
  • kasancewa daidaitaccen saitin kayayyaki, amfani da wanda baya buƙatar ɗaure ga abin dogaro na waje. Modules daga daidaitattun tarin sun sami ƙarin bincike da gwajin dacewa;
  • Baya ga lokacin aiki, dandamalin Deno shima yana aiki azaman mai sarrafa fakiti kuma yana ba ku damar samun dama ga kayayyaki ta URL a cikin lambar. Misali, don loda tsarin, zaku iya sakawa a cikin lambar “shigo da * azaman log daga “https://deno.land/std/log/mod.ts”. Fayilolin da aka zazzage daga sabar na waje ta URL an adana su. An ƙayyade nau'ikan nau'ikan nau'ikan nau'ikan ta hanyar ƙayyadaddun lambobi a cikin URL, misali, “https://unpkg.com/[email kariya]/dist/liltest.js";
  • Tsarin ya haɗa da tsarin dubawa mai haɗaɗɗen dogaro (umarnin "deno info") da mai amfani don tsara lambar (deno fmt);
  • Ana iya haɗa duk rubutun aikace-aikacen zuwa fayil ɗin JavaScript ɗaya.

Bambance-bambance daga Node.js:

  • Deno baya amfani da mai sarrafa fakitin npm
    kuma ba a haɗa shi da ma'ajin ajiya ba, ana magana da kayayyaki ta hanyar URL ko ta hanyar fayil, kuma ana iya sanya su kansu samfuran akan kowane gidan yanar gizo;
  • Deno baya amfani da "package.json" don ayyana kayayyaki;
  • Bambancin API, duk ayyukan asynchronous a cikin Deno suna dawo da alkawari;
  • Deno yana buƙatar fayyace ma'anar duk wasu izini masu mahimmanci don fayiloli, hanyar sadarwa da masu canjin yanayi;
  • Duk kurakuran da ba a bayar da su tare da masu kulawa ba suna haifar da ƙarewar aikace-aikacen;
  • Deno yana amfani da tsarin ƙirar ECMAScript kuma baya goyan bayan buƙata();
  • Ginin uwar garken HTTP na Deno an rubuta shi a cikin TypeScript kuma yana gudana a saman soket na TCP na asali, yayin da aka rubuta sabar HTTP ta Node.js a cikin C kuma tana ba da ɗauri don JavaScript. Masu haɓakawa na Deno sun mai da hankali kan haɓaka gabaɗayan Layer soket na TCP da samar da ƙarin fa'ida ta gaba ɗaya. Deno HTTP Server yana ba da ƙananan kayan aiki amma yana ba da garantin ƙarancin latti. Misali, a cikin gwajin, aikace-aikace mai sauƙi dangane da uwar garken Deno HTTP ya sami damar aiwatar da buƙatun 25 dubu a sakan daya tare da matsakaicin latency na milliseconds 1.3. A cikin Node.js, irin wannan aikace-aikacen ya aiwatar da buƙatun 34 dubu a cikin daƙiƙa guda, amma latencies ya tashi daga 2 da 300 milliseconds.
  • Deno bai dace da fakiti don Node.js (NPM), amma ana haɓaka shi daban interlayer don dacewa da daidaitaccen ɗakin karatu na Node.js, yayin da yake tasowa, ƙarin aikace-aikacen da aka rubuta don Node.js za su iya aiki a Deno.
  • source: budenet.ru

Add a comment