Разработка сайтов в Москве. Изучите Deno: безопасная среда выполнения JavaScript и TypeScript

 
 

В этой статье я надеюсь дать вам обзор того, что такое Deno. Мы рассмотрим его ключевые функции и спросим, ​​почему вы можете начать изучать этот новый инструмент.

Что такое Дено?

Так что же такое Deno и зачем он был создан? Это среда выполнения JavaScript и TypeScript, что означает, что вы можете писать программы на любом языке и выполнять их из командной строки. В отличие от JavaScript, запускаемого в браузере, программы Deno могут получать доступ к ресурсам на хост-компьютере, таким как файловая система и переменные среды.

Если вы знакомы с Node.js и думаете, что Deno звучит очень похоже, вы правы. Deno — детище создателя Node, Райана Даля, который создал Deno, чтобы исправить то, что он считает недостатками дизайна в Node. Цель проекта — предоставить среду сценариев, которая по умолчанию безопасна, рассматривает TypeScript как первоклассный язык и максимально совместима с браузером (там, где это целесообразно).

Функции безопасности

Deno разработан, чтобы быть безопасным из коробки. Весь код по умолчанию выполняется в защищенной песочнице, а это означает, что вам необходимо дать явное разрешение, чтобы разрешить программе доступ к сети или файловой системе.

Программам могут быть предоставлены разрешения со следующими флагами командной строки:

-A, —allow-all: разрешить все разрешения (отключает всю безопасность).

allow-env: разрешить получение и установку переменных окружения.

allow-hrtime: разрешить измерение времени с высоким разрешением (может использоваться в атаках по времени и снятии отпечатков пальцев).

allow-net=\: разрешить доступ к сети. При желании принимает белый список доменов, разделенных запятыми.

allow-plugin: разрешить загрузку плагинов (нестабильная функция).

–разрешить чтение=\: разрешить доступ на чтение к файловой системе. При желании принимает белый список каталогов или файлов, разделенных запятыми.

allow-run: разрешить выполнение подпроцессов.

–разрешить запись=\: разрешить доступ на запись к файловой системе. При желании принимает белый список каталогов или файлов, разделенных запятыми.

Первоклассная поддержка TypeScript

Как я упоминал ранее, Deno может выполнять как JavaScript, так и TypeScript. Более того, он поддерживает TypeScript как первоклассный язык. Это означает, что он может загружать и запускать ваш код TypeScript без каких-либо дополнительных шагов сборки. Нет необходимости настраивать дополнительные инструменты, чтобы сначала преобразовать ваш код в JavaScript.

Конечно, поскольку TypeScript является расширенным набором современного JavaScript, вы также можете писать свой код на старом добром JS, если хотите! Deno поддерживает некоторые замечательные, удобные для разработчиков функции, такие как импорт модулей ES.

Использование внешнего кода

Как упомянул Райан в своем выступлении, одной из его целей в Deno было избежать необходимости в менеджере пакетов. В отличие от сред выполнения/языков, таких как Node.js и PHP (которые используют менеджеры пакетов npm и composer соответственно), для Deno нет менеджера пакетов.

Вместо этого внешние пакеты импортируются напрямую через URL:

import { Client } from «https: //deno.land/x/mysql@2.2.0/mod.ts»;

При первом запуске скрипта Deno извлечет, скомпилирует и кэширует все импортированные данные, так что последующие запуски будут молниеносными. Очевидно, что бывают случаи, когда вам может понадобиться заставить его повторно получить импорт, и вы можете сделать это с помощью cacheподкоманды:

deno cache —reload my_module.ts

Пакетный хостинг

Хотя Deno не предоставляет реестра пакетов как такового, есть список доступных сторонних модулей. Служба предоставляет стандартизированный версионный URL-адрес, который сопоставляется с репозиторием модуля на GitHub. Вы можете искать пакеты по имени и просматривать краткое описание, а также щелкать, чтобы просмотреть файл сведений о пакете.

Стандартная библиотека

Deno предоставляет стандартную библиотеку, частично основанную на библиотеке Golang, которая предоставляет набор высококачественных стандартных модулей без каких-либо внешних зависимостей.

Пакеты стандартной библиотеки не устанавливаются вместе с Deno. Скорее, они доступны в Интернете и связаны с ними, как мы видели в предыдущем разделе. Модули версионные, что позволяет вам привязать свой код к использованию определенной версии:

import { copy } from «https: //deno.land/std@0.50.0/fs/copy.ts»;

Это означает, что любой написанный вами код, основанный на модуле из стандартной библиотеки, должен продолжать работать в будущих версиях.

Библиотека включает в себя различные помощники и утилиты, которые могут вам понадобиться для создания как приложений командной строки, так и приложений на основе HTTP:

архив: модули для работы с файлами tar

async: асинхронные утилиты

bytes: хелперы для работы с бинарными массивами

datetime: помощник для разбора строк даты в Dateобъекты

кодирование: кодировщики для работы с форматами base32, двоичными файлами, CSV, TOML и YAML.

flags: парсер аргументов командной строки

fmt: инструмент для печати форматированного вывода

fs: помощники для работы с файловой системой

hash: модуль для создания хэшей с использованием различных алгоритмов

http: создавать HTTP и файловые серверы и управлять файлами cookie.

io: утилиты для ввода/вывода строк

log: простой модуль ведения журнала

mime: обеспечивает поддержку составных данных.

node: уровень совместимости (в настоящее время в разработке) для кода Node.js

path: утилита для работы с путями

разрешения: помощники для проверки и запроса разрешений безопасности

signal: помощники для обработки сигналов процесса Deno

тестирование: тестовые утверждения для использования со встроенным средством запуска тестов Deno.

uuid: утилиты для генерации и проверки UUID

ws: помощники для создания клиентов и серверов WebSocket

Установка Дено

Deno поставляется как единый исполняемый файл без каких-либо зависимостей. Вы можете скачать бинарный файл со страницы релизов или установить его с помощью установщиков ниже:

Оболочка (macOS, Linux):

curl -fsSL https://deno.land/x/install/install.sh | sh

PowerShell (Windows):

iwr https://deno.land/x/install/install.ps1 -useb | iex

Самодельный (macOS):

brew install deno

Обновление

После установки Deno также может обновить себя до последней версии, используя следующую команду:

deno upgrade

Или вы можете перейти на определенную версию:

deno upgrade —version 1.0.1

Будущее яркое

В руководстве Deno говорится, что это «отличная замена служебным сценариям, которые, возможно, исторически были написаны с помощью Bash или Python». Хотя это, безусловно, верно, я ожидаю, что он все чаще будет использоваться для тех же случаев использования, в которых в настоящее время популярен Node.js. Уже появляется ряд фреймворков, подобных Express/Koa, которые позволяют создавать безопасные для типов REST API, а также становится доступным растущее число сторонних модулей.

Итак, стоит ли вам забыть Node.js и начать изучать Deno? Текущее мнение в отрасли таково, что Node.js не собирается исчезать в ближайшее время, но Deno, безусловно, является технологией, за которой стоит следить.

Фонды Дено

Изучите Deno с нашей коллекцией Deno Foundations. Здесь вы найдете весь наш обзор Deno по мере его публикации, организованный таким образом, чтобы помочь вам как новичку.

3D-печать5GABC-анализAndroidAppleAppStoreAsusCall-центрChatGPTCRMDellDNSDrupalExcelFacebookFMCGGoogleHuaweiInstagramiPhoneLinkedInLinuxMagentoMicrosoftNvidiaOpenCartPlayStationPOS материалPPC-специалистRuTubeSamsungSEO-услугиSMMSnapchatSonyStarlinkTikTokTwitterUbuntuUp-saleViasatVPNWhatsAppWindowsWordPressXiaomiYouTubeZoomАвдеевкаАктивные продажиАкцияАлександровск ЛНРАлмазнаяАлчевскАмвросиевкаАнализ конкурентовАнализ продажАнтимерчандайзингАнтрацитАртемовскАртемовск ЛНРАссортиментная политикаБелгородБелицкоеБелозерскоеБердянскБизнес-идеи (стартапы)БрендБрянкаБукингВахрушевоВендорВидеоВикипедияВирусная рекламаВирусный маркетингВладивостокВнутренние продажиВнутренний маркетингВолгоградВолновахаВоронежГорловкаГорнякГорскоеДебальцевоДебиторкаДебиторская задолженностьДезинтермедитацияДзержинскДивизионная система управленияДизайнДимитровДирект-маркетингДисконтДистрибьюторДистрибьюцияДобропольеДокучаевскДоменДружковкаЕкатеринбургЕнакиевоЖдановкаЗапорожьеЗимогорьеЗолотоеЗоринскЗугрэсИжевскИловайскИрминоКазаньКалининградКировскКировскоеКомсомольскоеКонстантиновкаКонтент-маркетингКонтент-планКопирайтингКраматорскКрасноармейскКрасногоровкаКраснодарКраснодонКраснопартизанскКрасный ЛиманКрасный ЛучКременнаяКураховоКурскЛисичанскЛуганскЛутугиноМакеевкаМариупольМаркетингМаркетинговая информацияМаркетинговые исследованияМаркетинговый каналМаркетинг услугМаркетологМарьинкаМедиаМелекиноМелитопольМенеджментМерчандайзерМерчандайзингМиусинскМолодогвардейскМоскваМоспиноНижний НовгородНиколаевНиколаевкаНишевой маркетингНовоазовскНовогродовкаНоводружескНовосибирскНумерическая дистрибьюцияОдессаОмскОтдел маркетингаПартизанский маркетингПервомайскПеревальскПетровскоеПлата за кликПоисковая оптимизацияПопаснаяПравило ПаретоПривольеПрогнозирование продажПродвижение сайтов в ДонецкеПроизводство видеоПромоПромоушнПрямой маркетингРабота для маркетологаРабота для студентаРазработка приложенийРаспродажаРегиональные продажиРекламаРеклама на асфальтеРемаркетингРетро-бонусРибейтРитейлРовенькиРодинскоеРостов-на-ДонуРубежноеСамараСанкт-ПетербургСаратовСватовоСвердловскСветлодарскСвятогорскСевастопольСеверодонецкСеверскСедовоСейлз промоушнСелидовоСимферопольСинергияСколковоСлавянскСнежноеСоздание сайтов в ДонецкеСоледарСоциальные сетиСочиСтаробельскСтаробешевоСтахановСтимулирование сбытаСуходольскСчастьеТелемаркетингТельмановоТираспольТорговый представительТорезТрейд маркетингТрейд промоушнТюменьУглегорскУгледарУкраинскХабаровскХарцызскХерсонХостингЦелевая аудиторияЦифровой маркетингЧасов ЯрЧелябинскШахтерскЮжно-СахалинскЮнокоммунаровскЯндексЯсиноватая