Nivîskarê Node.js platforma ewledar a JavaScript Deno 1.0 pêşkêş kir

Piştî du salan pêşveçûn pêşkêş kirin yekem serbestberdana sereke 1.0 bide min, platformek ji bo pêkanîna serbixwe ya sepanan di JavaScript û TypeScript de, ku dikare were bikar anîn da ku rêgezên ku li ser serverê dimeşînin çêbikin. Platform ji hêla Ryan Dahl ve hatî pêşve xistin (Ryan Dahl), afirînerê Node.js. Mîna Node.js, Deno motorek JavaScript bikar tîne V8, ku di gerokên Chromium-ê de jî tê bikar anîn. Di heman demê de, Deno ne forkek Node.js e, lê projeyek nû ye ku ji nû ve hatî afirandin. Koda projeyê belav kirin ji hêla di bin lîsansa MIT. Meclîsan amade kirin ji bo Linux, Windows û macOS.

Hejmara guhertoya girîng bi îstîqrara API-yên li qada navên Deno ve girêdayî ye, ku berpirsiyarê danûstendina serîlêdanan bi OS-ê re ne. Navrûyên nermalavê yên ku heya niha hene ne stabîl kirin, ji hêla xwerû ve têne veşartin û tenê dema ku di moda "--nestable" de dixebitin hene. Her ku guhertoyên nû têne damezrandin, API-yên weha hêdî hêdî dê aram bibin. API-ya di qada navên gerdûnî de, ku fonksiyonên hevpar ên wekî setTimeout () û fetch () vedihewîne, bi qasî ku pêkan nêzîkê API-ya gerokên tevnvî yên kevneşopî ye û li gorî standardên Web-ê ji bo gerokan hatî pêşve xistin. API-yên ku ji hêla Rust ve têne peyda kirin, ku rasterast di koda platformê de têne bikar anîn, û her weha navbeynkariya ji bo pêşkeftina pêvekan ji bo dema xebitandinê Deno, hîn nehatine stabîl kirin û pêşkeftinê didomînin.

Motîvên sereke yên afirandina platformek JavaScript-a nû xwestina ji holê rakirina xeletiyên têgehî bûn, qebûl kirin di mîmariya Node.js de, û ji bikarhêneran re jîngehek ewledartir peyda dike. Ji bo baştirkirina ewlehiyê, motora V8 bi Rust ve hatî nivîsandin, ku ji gelek lawaziyên ku ji manîpulasyonên bîranîna nizm derdikevin, wek gihandina piştî-belaş, veqetandinên nîşangirên nûl, û derbasbûna tamponê dûr dixe. Platform ji bo pêkanîna daxwazan di moda ne-astengkirinê de tê bikar anîn Tokyo, bi Rust jî hatiye nivîsandin. Tokio destûrê dide te ku hûn serîlêdanên performansa bilind li ser bingeha mîmariya bûyer-rêveber biafirînin, di moda asynchronous de daxwazên torê yên pir-têkilî û pêvajoyê piştgirî bikin.

sereke taybetmendiyên Deno:

  • Veavakirina xwerû ya ewlekarî-oriented. Gihîştina pelan, torê, û gihîştina guhêrbarên jîngehê ji hêla xwerû ve neçalak in û divê bi eşkereyî bêne çalak kirin. Serlêdan ji hêla xwerû ve li hawîrdorên sandboxê yên veqetandî têne xebitandin û bêyî dayîna destûrên eşkere nikarin bigihîjin kapasîteyên pergalê;
  • Piştgiriya çêkirî ya ji bo TypeScript ji derveyî JavaScript. Berhevkara standard TypeScript ji bo kontrolkirina cûreyan û hilberîna JavaScript-ê tê bikar anîn, ku ev yek li gorî parkirina JavaScript-ê di V8-ê de dibe sedema lêdanek performansê. Di pêşerojê de, em plan dikin ku bicîhkirina xwe ya pergala kontrolkirina tîpa TypeScript-ê amade bikin, ku dê performansa pêvajoyê ya TypeScript bi rêzek mezinbûnê baştir bike;
  • Runtime di forma pelê yekane ya xwerû ya îcrakar ("deno") de tê. Ji bo xebitandina sepanan bi karanîna Deno bes e barkirin ji bo platforma wê yek pelek îcrakar heye, bi qasî 20 MB mezinahiya wê, ku pêwendiya wê ya derveyî tune û li ser pergalê sazkirinek taybetî hewce nake. Digel vê yekê, deno ne serîlêdanek yekparêz e, lê berhevokek pakêtên kulikê ye li Rust (deno_core, rusty_v8), ku dikare cûda were bikar anîn;
  • Dema ku bernameyê dest pê dike, û hem jî ji bo barkirina modulan, hûn dikarin navnîşana URL-ê bikar bînin. Mînakî, ji bo ku bernameya welcome.js bimeşîne, hûn dikarin fermana "deno https://deno.land/std/examples/welcome.js" bikar bînin. Koda ji çavkaniyên derveyî li ser pergala herêmî tê dakêşandin û cache, lê tu carî bixweber nayê nûve kirin (ji bo nûvekirin pêdivî ye ku bi eşkere serlêdana bi ala "--ji nû ve barkirin" were xebitandin);
  • Pêvajoya bikêrhatî ya daxwazên torê bi riya HTTP di serlêdanan de; platform ji bo afirandina sepanên torê yên performansa bilind hatî çêkirin;
  • Kapasîteya afirandina serîlêdanên tevnvîsê yên gerdûnî yên ku hem di Deno û hem jî di gerokek tevnvîsê ya birêkûpêk de têne darve kirin;
  • berdestbûnî set standard yên modules, bikaranîna wê ne hewce ye ku bi girêdanên derveyî ve girêdayî ye. Modulên ji berhevoka standard ketine ceribandina kontrol û lihevhatina zêde;
  • Digel dema xebitandinê, platforma Deno di heman demê de wekî rêveberê pakêtê jî tevdigere û dihêle hûn bi URL-ê di hundurê kodê de bigihîjin modulan. Mînakî, ji bo barkirina modulek, hûn dikarin di kodê de "import * wekî têketinê ji "https://deno.land/std/log/mod.ts" diyar bikin. Pelên ku ji serverên derveyî bi navgîniya URL-ê têne dakêşandin têne cache kirin. Girêdana guhertoyên modulê bi destnîşankirina hejmarên guhertoyê di hundurê URL-ê de tê destnîşankirin, mînakî, "https://unpkg.com/[email parastî]/dist/liltest.js";
  • Avahî pergalek vekolîna girêdayîbûnê ya yekbûyî (fermana "agahdariya deno") û amûrek ji bo formatkirina kodê (deno fmt) vedihewîne;
  • Hemî nivîsarên serîlêdanê dikarin di pelek JavaScriptê de bêne hev kirin.

Cûdahî ji Node.js:

  • Deno rêveberê pakêtê npm bikar nayîne
    û bi depoyan ve ne girêdayî ye, modul bi navnîşek URL-ê an bi riya pelê ve têne navnîş kirin, û modul bixwe dikarin li ser her malperê bêne danîn;
  • Deno ji bo pênasekirina modulan "package.json" bikar nayne;
  • Cûdahiya API-ê, hemî çalakiyên asynchronous di Deno de sozek vedigerin;
  • Deno ji bo pelan, torê û guhêrbarên hawîrdorê pênasekirina eşkere ya hemî destûrên pêwîst hewce dike;
  • Hemî xeletiyên ku bi handleran re nehatine peyda kirin dibe sedema bidawîbûna serîlêdanê;
  • Deno pergala modulê ya ECMAScript bikar tîne û hewce nake ();
  • Pêşkêşkara HTTP ya çêkirî ya Deno bi TypeScript-ê tê nivîsandin û li ser soketên TCP-ya xwemalî dimeşîne, dema ku servera HTTP ya Node.js bi C-yê hatî nivîsandin û girêdanên JavaScript-ê peyda dike. Pêşdebirên Deno balê dikişînin ser xweşbînkirina tevahiya qata soketa TCP û peydakirina navgînek gelemperî. Pêşkêşkara Deno HTTP rêjeya kêmtir peyda dike lê derengiya kêm a pêşbînîkirî garantî dike. Mînakî, di ceribandinê de, serîlêdanek hêsan a ku li ser bingeha servera Deno HTTP-ê ye, karîbû 25 hezar daxwaz di çirkeyê de bi derengiya herî zêde 1.3 milîçirkeyan bişopîne. Di Node.js de, serîlêdanek bi heman rengî di çirkekê de 34 hezar daxwazan pêvajo kir, lê dereng di navbera 2 û 300 milîsaniyeyan de bû.
  • Deno bi pakêtên ji bo Node.js (NPM) re ne hevaheng e, lê ji hev cuda tê pêşve xistin interlayer ji bo lihevhatina bi pirtûkxaneya standard Node.js re, her ku ew pêş dikeve, bêtir û bêtir sepanên ku ji bo Node.js hatine nivîsandin dê karibin di Deno de bimeşînin.
  • Source: opennet.ru

Add a comment