Ua hōʻike ka mea kākau o Node.js i ka paepae JavaScript palekana Deno 1.0

Ma hope o ʻelua makahiki o ka hoʻomohala ʻana hōʻike ʻia hoʻokuʻu nui mua ʻO Deno 1.0, he kahua no ka hoʻokō kū hoʻokahi o nā noi ma JavaScript a me TypeScript, hiki ke hoʻohana ʻia e hana i nā mea lawelawe e holo ana ma ke kikowaena. Hoʻokumu ʻia ka paepae e Ryan Dahl (ʻO Ryan Dahl), ka mea nāna i hana iā Node.js. E like me Node.js, hoʻohana ʻo Deno i ka mīkini JavaScript V8, i hoʻohana pū ʻia ma nā polokalamu kele pūnaewele Chromium. Ma ka manawa like, ʻaʻole ʻo Deno kahi mākia o Node.js, akā he papahana hou i hana ʻia mai ka wā ʻōpala. Code papahana mahele ʻia e ma lalo o ka laikini MIT. Huipuia hoomakaukauia no Linux, Windows a me macOS.

Hoʻopili ʻia ka helu helu koʻikoʻi me ka hoʻopaʻa ʻana o nā API ma ka inoa inoa Deno, nona ke kuleana no ka launa pū ʻana o nā noi me ka OS. Nā polokalamu polokalamu i loaʻa i kēia manawa ʻaʻole paʻa, hūnā ʻia ma ka paʻamau a loaʻa wale i ka wā e holo ana ma ke ʻano "--unstable". Ke hoʻokumu ʻia nā mana hou, e paʻa mālie ia mau API. ʻO ka API i loko o ka papa inoa honua, kahi i loaʻa nā hana maʻamau e like me setTimeout() a me fetch (), kokoke loa i ka API o nā polokalamu kele pūnaewele maʻamau a hoʻomohala ʻia e like me nā kūlana Pūnaewele no nā polokalamu kele pūnaewele. ʻO nā API i hāʻawi ʻia e Rust, i hoʻohana pololei ʻia i ka code platform, a me ka interface no ka hoʻomohala ʻana i nā plugins no Deno runtime, ʻaʻole i hoʻopaʻa ʻia a hoʻomau i ka ulu ʻana.

ʻO nā kumu nui no ka hoʻokumu ʻana i kahi kahua JavaScript hou, ʻo ia ka makemake e hoʻopau i nā hewa manaʻo. ʻae ʻia i loko o ka hale hoʻolālā Node.js, a hāʻawi i nā mea hoʻohana i kahi ʻoi aku ka palekana. No ka hoʻomaikaʻi ʻana i ka palekana, ua kākau ʻia ka ʻenekini V8 ma Rust, ka mea e pale ai i nā mea nāwaliwali e kū mai ana mai ka hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ka loaʻa ʻana ma hope o ka manuahi, nā kuhikuhi kuhikuhi null, a me nā overruns. Hoʻohana ʻia ka paepae no ka hana ʻana i nā noi ma ke ʻano pale ʻole Tokyo, kākau pū ʻia ma Rust. ʻAe ʻo Tokio iā ʻoe e hana i nā noi hana kiʻekiʻe e pili ana i ka hoʻolālā hanana hanana, ke kākoʻo ʻana i nā noi pūnaewele multi-threading a me ka hoʻoponopono ʻana i ke ʻano asynchronous.

ka papa kuhikuhiE hiʻona Deno:

  • Hoʻonohonoho paʻamau pili i ka palekana. ʻAʻole paʻamau ka loaʻa ʻana o ka faila, ka pūnaewele, a me ke komo ʻana i nā ʻano hoʻololi kaiapuni a pono e ʻae ʻia. Ke holo nei nā noi ma nā wahi pahu one kaʻawale a ʻaʻole hiki ke komo i nā mana ʻōnaehana me ka ʻole o ka hāʻawi ʻana i nā ʻae kikoʻī;
  • Kākoʻo i kūkulu ʻia no TypeScript ma waho o JavaScript. Hoʻohana ʻia ka mea hōʻuluʻulu TypeScript maʻamau no ka nānā ʻana i nā ʻano a hoʻopuka i ka JavaScript, e alakaʻi ana i kahi pānaʻi hoʻokō i hoʻohālikelike ʻia me JavaScript parsing ma V8. I ka wā e hiki mai ana, hoʻolālā mākou e hoʻomākaukau i kā mākou hoʻokō ponoʻī o ka ʻōnaehana nānā ʻano TypeScript, e hoʻomaikaʻi ai i ka hana hoʻoponopono TypeScript ma ke ʻano o ka nui;
  • Hiki mai ka manawa holo ma ke ʻano o kahi faila hoʻokō ponoʻī hoʻokahi ("deno"). E holo i nā noi me Deno ua lawa hoʻouka no kona paepae aia hoʻokahi faila hiki ke hoʻokō, ma kahi o 20 MB ka nui, ʻaʻohe mea hilinaʻi waho a ʻaʻole koi i kahi hoʻonohonoho kūikawā ma ka ʻōnaehana. Eia kekahi, ʻaʻole ʻo deno kahi noi monolithic, akā he hōʻiliʻili o nā pahu pahu i Rust (deno_core, rusty_v8), hiki ke hoʻohana kaʻawale;
  • I ka hoʻomaka ʻana i ka papahana, a me ka hoʻouka ʻana i nā modules, hiki iā ʻoe ke hoʻohana i ka ʻōlelo URL. No ka laʻana, e holo i ka polokalamu welcome.js, hiki iā ʻoe ke hoʻohana i ke kauoha "deno https://deno.land/std/examps/welcome.js". Hoʻoiho ʻia nā code mai nā kumuwaiwai o waho a hoʻopaʻa ʻia ma ka ʻōnaehana kūloko, akā ʻaʻole i hoʻonui ʻia (e koi ʻia ka hoʻonui ʻana i ka noi me ka hae "--reload");
  • ʻO ka hana kūpono o nā noi pūnaewele ma o HTTP i nā noi; ua hoʻolālā ʻia ke kahua no ka hana ʻana i nā noi pūnaewele hana kiʻekiʻe;
  • ʻO ka hiki ke hana i nā noi pūnaewele puni honua i hiki ke hoʻokō ʻia ma Deno a ma kahi polokalamu kele pūnaewele maʻamau;
  • loaʻa nui hoʻonohonoho maʻamau o nā modula, ʻaʻole pono ka hoʻohana ʻana i ka hoʻopaʻa ʻana i nā hilinaʻi waho. Ua loaʻa i nā modula mai ka hōʻiliʻili maʻamau ka loiloi hou a me ka hoʻāʻo ʻana;
  • Ma waho aʻe o ka runtime, hana pū ka Deno platform ma ke ʻano he mea hoʻokele pōpō a hiki iā ʻoe ke komo i nā modules e URL i loko o ke code. No ka laʻana, no ka hoʻouka ʻana i kahi module, hiki iā ʻoe ke kuhikuhi i ke code "import * as log from "https://deno.land/std/log/mod.ts". Hoʻopili ʻia nā faila i hoʻoiho ʻia mai nā kikowaena waho ma o URL. Hoʻoholo ʻia ka hoʻopaʻa ʻana i nā mana module ma ke kuhikuhi ʻana i nā helu mana i loko o ka URL, no ka laʻana, "https://unpkg.com/[pale ʻia ka leka uila]/dist/liltest.js";
  • Aia i loko o ka hale kahi ʻōnaehana nānā hilinaʻi i hoʻohui ʻia (ke kauoha "deno info") a me kahi mea pono no ka hoʻopili ʻana i nā code (deno fmt);
  • Hiki ke hoʻohui ʻia nā palapala noi a pau i hoʻokahi faila JavaScript.

Nā ʻokoʻa mai Node.js:

  • ʻAʻole hoʻohana ʻo Deno i ka luna pūʻulu npm
    a ʻaʻole i hoʻopaʻa ʻia i nā waihona, ua ʻōlelo ʻia nā modules ma o kahi URL a i ʻole kahi ala faila, a hiki ke kau ʻia nā modules ma kekahi pūnaewele;
  • ʻAʻole hoʻohana ʻo Deno i "package.json" e wehewehe i nā modula;
  • ʻO ka ʻokoʻa API, nā hana asynchronous a pau ma Deno e hoʻihoʻi i kahi ʻōlelo hoʻohiki;
  • Pono ʻo Deno i ka wehewehe kikoʻī o nā ʻae āpau e pono ai no nā faila, pūnaewele a me nā ʻano hoʻololi kaiapuni;
  • ʻO nā hewa āpau i hāʻawi ʻole ʻia me nā mea lawelawe e alakaʻi i ka hoʻopau ʻana o ka noi;
  • Hoʻohana ʻo Deno i ka ʻōnaehana module ECMAScript a ʻaʻole kākoʻo i ka koi ();
  • Ua kākau ʻia ka server HTTP i kūkulu ʻia a Deno ma TypeScript a holo ma luna o nā kumu TCP maoli, ʻoiai ua kākau ʻia ka server HTTP Node.js ma C a hāʻawi i nā mea paʻa no JavaScript. Ua kālele ka poʻe hoʻomohala o Deno i ka hoʻonui ʻana i ka papa kumu TCP holoʻokoʻa a me ka hāʻawi ʻana i kahi interface maʻamau. Hāʻawi ʻo Deno HTTP Server i ka haʻahaʻa haʻahaʻa akā e hōʻoiaʻiʻo i ka latency haʻahaʻa haʻahaʻa. No ka laʻana, i ka hoʻāʻo ʻana, hiki i kahi noi maʻalahi e pili ana i ka server Deno HTTP ke hana i ka 25 tausani mau noi i kēlā me kēia kekona me ka latency kiʻekiʻe o 1.3 milliseconds. Ma Node.js, ua hoʻohana ʻia kahi noi like i 34 tausani mau noi i kēlā me kēia kekona, akā ʻo nā latencies mai ka 2 a me 300 milliseconds.
  • ʻAʻole kūpono ʻo Deno me nā pūʻolo no Node.js (NPM), akā ke kūkulu ʻia nei ma kahi kaʻawale interlayer no ka launa pū ʻana me ka waihona Node.js maʻamau, ʻoiai e ulu ana, hiki ke holo i nā noi i kākau ʻia no Node.js ma Deno.
  • Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka