Deno долбоору Node.js сыяктуу коопсуз JavaScript платформасын иштеп чыгууда

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

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

негизги өзгөчөлүктөрү Дено:

  • Коопсуздукка багытталган демейки конфигурация. Файлга кирүү, тармактык жана чөйрө өзгөрмөлөрүнүн мүмкүнчүлүгү демейки боюнча өчүрүлгөн жана ачык түрдө иштетилиши керек;
  • JavaScript кошумча TypeScript тили үчүн камтылган колдоо;
  • Runtime бир өз алдынча аткарылуучу файл түрүндө келет («дено»). Deno аркылуу тиркемелерди иштетүү үчүн жетиштүү жүктөп алуу өзүнүн платформасы үчүн тышкы көз карандылыгы жок жана системага атайын орнотууну талап кылбаган, көлөмү болжол менен 10 МБ болгон бир аткарылуучу файл;
  • Программаны баштаганда, ошондой эле модулдарды жүктөө үчүн сиз URL дарегин колдоно аласыз. Мисалы, Welcome.js программасын иштетүү үчүн “deno https://deno.land/std/examples/welcome.js” буйругун колдонсоңуз болот. Тышкы ресурстардан алынган код локалдык системада жүктөлүп алынат жана кэштелет, бирок эч качан автоматтык түрдө жаңыланбайт (жаңыртуу үчүн тиркемени “--reload” желекчеси менен ачык иштетүү талап кылынат);
  • Тиркемелерде HTTP аркылуу тармактык суроо-талаптарды эффективдүү иштетүү; платформа жогорку натыйжалуу тармактык тиркемелерди түзүү үчүн иштелип чыккан;
  • Денодо да, кадимки веб-браузерде да аткарыла турган универсалдуу веб-тиркемелерди түзүү мүмкүнчүлүгү;
  • Иштөө убактысынан тышкары, Deno платформасы пакет менеджери катары да иштейт жана коддун ичиндеги URL аркылуу модулдарга кирүүгө мүмкүндүк берет. Мисалы, модулду жүктөө үчүн, "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 ECMAScript модулдук системасын колдонот жана талапты колдобойт().

Source: opennet.ru

Комментарий кошуу