Пас аз ду соли инкишоф
Рақами назарраси версия бо устувории APIҳо дар фазои номи Deno алоқаманд аст, ки барои ҳамкории барномаҳо бо ОС масъуланд. Интерфейсҳои нармафзор, ки то ҳол доранд
Ҳадафҳои асосии эҷоди платформаи нави JavaScript ин хоҳиши бартараф кардани хатогиҳои консептуалӣ,
асосӣ
- Конфигуратсияи пешфарз, ки ба амният нигаронида шудааст. Дастрасии файл, шабака ва дастрасӣ ба тағирёбандаҳои муҳити зист бо нобаёнӣ ғайрифаъол карда мешаванд ва бояд ба таври возеҳ фаъол карда шаванд. Барномаҳо ба таври нобаёнӣ дар муҳити ҷудошудаи қум кор мекунанд ва бидуни додани иҷозатҳои возеҳ ба қобилиятҳои система дастрасӣ надоранд;
- Дастгирии дарунсохт барои TypeScript берун аз JavaScript. Компилятори стандартии TypeScript барои тафтиши намудҳо ва тавлиди JavaScript истифода мешавад, ки ин боиси баланд шудани иҷроиш дар муқоиса бо таҳлили JavaScript дар V8 мегардад. Дар оянда, мо нақша дорем, ки татбиқи худамонро системаи санҷиши навъи TypeScript омода созем, ки он иҷрои коркарди TypeScript-ро бо як андоза беҳтар мекунад;
- Вақти иҷро дар шакли як файли иҷрошавандаи мустақил («deno») меояд. Барои иҷро кардани барномаҳо бо Deno, кофӣ аст
боргузорӣ барои платформаи он як файли иҷрошаванда мавҷуд аст, ки андозаи он тақрибан 20 МБ мебошад, ки вобастагии беруна надорад ва ягон насби махсусро дар система талаб намекунад. Гузашта аз ин, deno як барномаи монолитӣ нест, балки маҷмӯи бастаҳои қуттиҳо дар Rust аст (deno_core ,rusty_v8 ), ки онро алохида истифода бурдан мумкин аст; - Ҳангоми оғоз кардани барнома, инчунин барои бор кардани модулҳо, шумо метавонед суроғаи 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-ро истифода мебарад ва талаб намекунад ();
- Сервери HTTP-и дарунсохтаи Deno дар TypeScript навишта шудааст ва дар болои васлкунакҳои аслии TCP кор мекунад, дар ҳоле ки сервери HTTP дар C навишта шудааст ва барои JavaScript пайвандҳоро таъмин мекунад. Таҳиягарони Deno ба оптимизатсияи тамоми қабати васлаки TCP ва таъмин намудани интерфейси умумӣ тамаркуз кардаанд. Deno HTTP Server гузариши камтарро таъмин мекунад, аммо таъхири пешгӯишавандаро кафолат медиҳад. Масалан, дар озмоиш як замимаи оддӣ дар асоси сервери Deno HTTP тавонист 25 ҳазор дархостро дар як сония бо таъхири ҳадди аксар 1.3 миллисония коркард кунад. Дар Node.js, як замимаи шабеҳ дар як сония 34 ҳазор дархостро коркард мекард, аммо таъхирҳо аз 2 то 300 миллисонияро ташкил медоданд.
- Deno бо бастаҳои Node.js (NPM) мувофиқ нест, аммо алоҳида таҳия карда мешавад
байниқабат барои мутобиқат бо китобхонаи стандартии Node.js, вақте ки он таҳия мешавад, бештар ва бештари барномаҳои барои Node.js навишташуда метавонанд дар Deno кор кунанд.
Манбаъ: opennet.ru