Лоиҳаи Deno платформаи бехатари JavaScript-ро ба монанди Node.js таҳия мекунад

Дастрас нашри лоиҳа Дено 0.33, ки платформаи ба Node.js монандро барои иҷрои мустақилонаи барномаҳо дар JavaScript ва TypeScript пешниҳод мекунад, ки метавонад барои иҷро кардани барномаҳо бидуни пайвастшавӣ ба браузер истифода шавад, масалан эҷоди коркардкунандагони дар сервер. Deno муҳаррики JavaScript-ро истифода мебарад V8, ки он инчунин дар Node.js ва браузерҳо дар асоси лоиҳаи Chromium истифода мешавад. Рамзи лоиҳа паҳн мекунад таҳти иҷозатномаи MIT. Лоиҳаро Райан Дал таҳия мекунад (Райан Дал), созандаи платформаи JavaScript Node.js.

Яке аз ҳадафҳои асосии эҷоди вақти нави корӣ барои JavaScript таъмини муҳити бехатартар аст. Барои беҳтар кардани амният, муҳаррики V8 дар Rust навишта шудааст, ки аз бисёр осебпазириҳо, ки дар натиҷаи коркарди хотираи сатҳи паст ба вуҷуд меоянд, аз қабили дастрасии пас аз озод, истинодҳои нул нишондиҳанда ва изофаи буфер пешгирӣ мекунад. Платформа барои коркарди дархостҳо дар реҷаи бебанд истифода мешавад Токио, инчунин ба забони руст навишта шудааст. Токио ба шумо имкон медиҳад, ки барномаҳои баландмаъноро дар асоси меъмории ба рӯйдодҳо асосёфта эҷод кунед, ки дархостҳои шабакавиро дар реҷаи асинхронӣ дастгирӣ мекунад.

асосӣ хусусиятҳо Дено:

  • Конфигуратсияи пешфарз, ки ба амният нигаронида шудааст. Дастрасии файл, шабака ва дастрасӣ ба тағирёбандаҳои муҳити зист ба таври нобаёнӣ ғайрифаъоланд ва бояд ба таври возеҳ фаъол карда шаванд;
  • Дастгирии дарунсохт барои забони TypeScript ба ғайр аз JavaScript;
  • Вақти иҷро дар шакли як файли иҷрошавандаи мустақил («deno») меояд. Барои иҷро кардани барномаҳо бо Deno, кофӣ аст боргузорӣ барои платформаи он як файли иҷрошавандаи ҳаҷмаш тақрибан 10 МБ, ки вобастагии беруна надорад ва ягон насби махсусро дар система талаб намекунад;
  • Ҳангоми оғоз кардани барнома, инчунин барои бор кардани модулҳо, шумо метавонед суроғаи URL-ро истифода баред. Масалан, барои иҷро кардани барномаи Welcome.js, шумо метавонед фармони "deno https://deno.land/std/examples/welcome.js" -ро истифода баред. Рамз аз захираҳои беруна дар системаи маҳаллӣ зеркашӣ ва кэш карда мешавад, аммо ҳеҷ гоҳ ба таври худкор нав карда намешавад (навсозӣ ба таври возеҳ иҷро кардани барномаро бо парчами "--reload" талаб мекунад);
  • Коркарди пурсамари дархостҳои шабакавӣ тавассути HTTP дар барномаҳо; платформа барои эҷоди барномаҳои шабакавии сермахсул пешбинӣ шудааст;
  • Имконияти эҷоди барномаҳои универсалии веб, ки онҳоро ҳам дар Deno ва ҳам дар браузери муқаррарии веб иҷро кардан мумкин аст;
  • Илова ба вақти корӣ, платформаи Deno инчунин ҳамчун мудири бастаҳо амал мекунад ва ба шумо имкон медиҳад, ки ба модулҳо тавассути URL дар дохили код дастрасӣ пайдо кунед. Масалан, барои бор кардани модул, шумо метавонед дар рамзи "import * ҳамчун сабт аз "https://deno.land/std/log/mod.ts" муайян кунед. Файлҳои аз серверҳои беруна тавассути URL зеркашидашуда кэш карда мешаванд. Пайвастшавӣ ба версияҳои модул тавассути муайян кардани рақамҳои версияи дохили URL муайян карда мешавад, масалан, "https://unpkg.com/[почтаи электронӣ ҳифз карда шудааст]/dist/liltest.js";
  • Сохтор дорои системаи ҳамгирошудаи санҷиши вобастагӣ (фармони "deno info") ва утилита барои форматкунии код (deno fmt) мебошад.
  • Барои таҳиягарони барнома пешниҳод кардааст маҷмӯи модулҳои стандартӣ, ки аз санҷиши иловагии аудит ва мутобиқат гузаштаанд;
  • Ҳама скриптҳои барномаро метавон дар як файли JavaScript муттаҳид кард.

Фарқиятҳо аз Node.js:

  • Deno мудири бастаи npm -ро истифода намебарад
    ва ба анборҳо алоқаманд нест, модулҳо тавассути URL ё роҳи файл ирсол карда мешаванд ва худи модулҳо метавонанд дар ҳама гуна вебсайт ҷойгир карда шаванд;

  • Deno барои муайян кардани модулҳо "package.json" -ро истифода намебарад;
  • Фарқияти API, ҳама амалҳои асинхронӣ дар Deno ваъда медиҳанд;
  • Deno таърифи дақиқи ҳама иҷозатҳои заруриро барои файлҳо, тағирёбандаҳои шабака ва муҳити зист талаб мекунад;
  • Ҳама хатогиҳое, ки бо коркардкунандагон таъмин нашудаанд, боиси қатъ шудани барнома мешаванд;
  • Deno системаи модули ECMAScript-ро истифода мебарад ва талабро () дастгирӣ намекунад.

Манбаъ: opennet.ru

Илова Эзоҳ