Deno төсөл нь Node.js-тэй төстэй аюулгүй JavaScript платформыг хөгжүүлж байна

Боломжтой төслийн хувилбар Дено 0.33, энэ нь сервер дээр ажилладаг зохицуулагч үүсгэх гэх мэт хөтчид холбогдохгүйгээр програмуудыг ажиллуулахад ашиглаж болох JavaScript болон TypeScript дээр бие даасан програмыг гүйцэтгэх Node.js-тэй төстэй платформыг санал болгодог. Дено нь JavaScript хөдөлгүүр ашигладаг V8, энэ нь Chromium төсөл дээр суурилсан Node.js болон хөтчүүдэд бас ашиглагддаг. Төслийн код тараасан MIT лицензийн дагуу. Төслийг Райн Дал (Ryan Dahl) боловсруулж байна.Райан Дал), Node.js JavaScript платформыг бүтээгч.

JavaScript-ийн шинэ ажиллах цагийг бий болгох гол зорилгын нэг нь илүү аюулгүй орчинг бүрдүүлэх явдал юм. Аюулгүй байдлыг сайжруулахын тулд V8 хөдөлгүүр нь Rust хэл дээр бичигдсэн байдаг бөгөөд энэ нь санах ойн доод түвшний заль мэхээс үүдэн гарах үнэгүй хандалт, хоосон заагчийн хаягжилт, буфер хэт их ачаалал гэх мэт олон эмзэг байдлаас зайлсхийдэг. Энэхүү платформ нь хүсэлтийг блоклохгүй горимд боловсруулахад ашиглагддаг Токио, мөн Rust дээр бичсэн. Токио нь үйл явдалд суурилсан архитектурт суурилсан өндөр гүйцэтгэлтэй програмуудыг үүсгэх боломжийг олгодог бөгөөд олон урсгалыг дэмждэг, асинхрон горимд сүлжээний хүсэлтийг боловсруулдаг.

Үндсэн Онцлог Дено:

  • Аюулгүй байдалд чиглэсэн өгөгдмөл тохиргоо. Файлын хандалт, сүлжээ болон орчны хувьсагчдад хандах хандалт нь анхдагчаар идэвхгүй бөгөөд тодорхой идэвхжсэн байх ёстой;
  • JavaScript-ээс гадна TypeScript хэлний суурилуулсан дэмжлэг;
  • Ажиллах цаг нь бие даасан гүйцэтгэх боломжтой файл ("deno") хэлбэрээр ирдэг. Deno ашиглан програмуудыг ажиллуулахад хангалттай байршуулах платформын хувьд 10 МБ хэмжээтэй, гадаад хамааралгүй, систем дээр тусгай суулгац шаарддаггүй нэг гүйцэтгэгдэх файл;
  • Програмыг эхлүүлэх, модулиудыг ачаалахын тулд та URL хаягийг ашиглаж болно. Жишээлбэл, Welcome.js програмыг ажиллуулахын тулд та “deno https://deno.land/std/examples/welcome.js” командыг ашиглаж болно. Гадны эх сурвалжаас кодыг локал системд татаж аваад кэшд хадгалдаг боловч хэзээ ч автоматаар шинэчлэгддэггүй (шинэчлэхийн тулд програмыг “--reload” гэсэн тугтайгаар ажиллуулах шаардлагатай);
  • Програмууд дахь HTTP-ээр дамжуулан сүлжээний хүсэлтийг үр дүнтэй боловсруулах; платформ нь өндөр хүчин чадалтай сүлжээний програмуудыг бий болгоход зориулагдсан;
  • Deno болон ердийн вэб хөтөч дээр ажиллах боломжтой бүх нийтийн вэб програмуудыг бий болгох чадвар;
  • Ажиллах хугацаанаас гадна Deno платформ нь багц менежерийн үүрэг гүйцэтгэдэг бөгөөд код доторх URL-ээр модулиудад хандах боломжийг олгодог. Жишээлбэл, модулийг ачаалахын тулд "https://deno.land/std/log/mod.ts"-аас "import *" гэсэн кодыг зааж өгч болно. URL-ээр дамжуулан гадаад серверээс татаж авсан файлуудыг кэшд хадгалдаг. Модулийн хувилбаруудтай холбох нь URL доторх хувилбарын дугаарыг зааж өгөх замаар тодорхойлогддог, жишээлбэл, “https://unpkg.com/[имэйлээр хамгаалагдсан]/dist/liltest.js";
  • Энэ бүтэц нь хараат байдлыг шалгах нэгдсэн систем ("deno info" команд) болон код форматлах хэрэгсэл (deno fmt) багтана.
  • Програм хөгжүүлэгчдэд зориулсан санал болгосон нэмэлт аудит, нийцтэй байдлын шалгалтанд хамрагдсан стандарт модулиудын багц;
  • Бүх програмын скриптүүдийг нэг JavaScript файлд нэгтгэж болно.

Node.js-ийн ялгаа:

  • Дено нь npm багц менежерийг ашигладаггүй
    хадгалах сантай холбоогүй, модулиуд нь URL эсвэл файлын замаар хаяглагдсан бөгөөд модулиудыг өөрсдөө дурын вэбсайтад байрлуулж болно;

  • Дено модулиудыг тодорхойлохдоо "package.json" ашигладаггүй;
  • API ялгаа, Deno дахь бүх асинхрон үйлдэл нь амлалтыг буцаана;
  • Deno нь файл, сүлжээ болон орчны хувьсагчдад шаардлагатай бүх зөвшөөрлийн тодорхой тодорхойлолтыг шаарддаг;
  • Зохицуулагчаар хангагдаагүй бүх алдаа нь програмыг зогсооход хүргэдэг;
  • Дено нь ECMAScript модулийн системийг ашигладаг бөгөөд require()-г дэмждэггүй.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх