Хоёр жилийн хөгжлийн дараа
Ач холбогдол бүхий хувилбарын дугаар нь үйлдлийн системтэй програмуудын харилцан үйлчлэлийг хариуцдаг Deno нэрийн орон зай дахь API-уудыг тогтворжуулахтай холбоотой юм. Өнөөг хүртэл байгаа програм хангамжийн интерфейс
Шинэ JavaScript платформыг бий болгох гол сэдэл нь үзэл баримтлалын алдааг арилгах хүсэл байв.
Үндсэн
- Аюулгүй байдалд чиглэсэн өгөгдмөл тохиргоо. Файлын хандалт, сүлжээ болон орчны хувьсагчдад хандах хандалт нь анхдагчаар идэвхгүй бөгөөд тодорхой идэвхжсэн байх ёстой. Програмууд нь анхдагчаар тусгаарлагдсан хамгаалагдсан хязгаарлагдмал орчинд ажилладаг бөгөөд тодорхой зөвшөөрөлгүйгээр системийн чадамжид хандах боломжгүй;
- JavaScript-ээс гадна TypeScript-ийн суурилуулсан дэмжлэг. Стандарт TypeScript хөрвүүлэгч нь төрлийг шалгах, JavaScript үүсгэхэд ашиглагддаг бөгөөд энэ нь V8 дээрх JavaScript задлан шинжилсэнтэй харьцуулахад гүйцэтгэлийн амжилтад хүргэдэг. Ирээдүйд бид TypeScript төрлийн шалгах системийг бие даан хэрэгжүүлэхээр төлөвлөж байгаа бөгөөд энэ нь TypeScript боловсруулалтын гүйцэтгэлийг тодорхой хэмжээгээр сайжруулах болно;
- Ажиллах цаг нь бие даасан гүйцэтгэх боломжтой файл ("deno") хэлбэрээр ирдэг. Deno ашиглан програмуудыг ажиллуулахад хангалттай
байршуулах Түүний платформын хувьд 20 МБ хэмжээтэй, гадаад хамааралгүй, систем дээр тусгай суулгац шаарддаггүй нэг гүйцэтгэгдэх файл байдаг. Түүгээр ч барахгүй deno нь цул хэрэглээ биш, харин Rust дахь хайрцагны багцуудын цуглуулга юм (deno_core ,зэвэрсэн_v8 ), тусад нь ашиглах боломжтой; - Програмыг эхлүүлэх, модулиудыг ачаалахын тулд та 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();
- Deno-ийн суулгасан HTTP сервер нь TypeScript дээр бичигдсэн бөгөөд эх TCP залгуурууд дээр ажилладаг бол Node.js HTTP сервер нь C хэл дээр бичигдсэн бөгөөд JavaScript-ийн холболтоор хангадаг. Deno-ийн хөгжүүлэгчид TCP залгуурын давхаргыг бүхэлд нь оновчтой болгож, илүү ерөнхий интерфейсээр хангахад анхаарлаа хандуулсан. Deno HTTP сервер нь дамжуулах хурд багатай боловч урьдчилан таамаглаж болох бага хоцролтыг баталгаажуулдаг. Жишээлбэл, туршилтын явцад Deno HTTP сервер дээр суурилсан энгийн програм нь секундэд 25 мянган хүсэлтийг хамгийн ихдээ 1.3 миллисекунд хоцрогдолтойгоор боловсруулах боломжтой болсон. Node.js-д ижил төстэй програм нь секундэд 34 мянган хүсэлтийг боловсруулдаг байсан ч хоцролтын хугацаа 2 ба 300 миллисекунд хооронд хэлбэлздэг.
- Deno нь Node.js (NPM) багцад тохирохгүй боловч тусад нь хөгжүүлж байна
хоорондын давхарга стандарт Node.js номын сантай нийцүүлэхийн тулд үүнийг хөгжүүлснээр Node.js-д зориулж бичсэн илүү олон програмууд Deno дээр ажиллах боломжтой болно.
Эх сурвалж: opennet.ru