Обзор примечаний к выпуску Deno 1.27

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

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

Итак, я собираюсь рассказать о том, что я считаю самым захватывающим обновлением. И вы можете сказать мне, если вы согласны со мной или нет в конце!

Инкрустация подсказок

Это обновление не является частью Deno, а скорее частью TypeScript 4.4. Благодаря тому, что в Deno интегрирован TS, он также получает преимущество.

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

Другими словами, компилятор TS становится намного умнее, и теперь вы можете видеть, как он интерпретирует ваш код, даже если вы не указываете в нем типы.

Это помогает поддерживать чистоту кода и в то же время обеспечивает дополнительную ценность подсказок.

Непосредственное место, где вы можете увидеть эффекты этого обновления, находится в вашей VSCode IDE. Если вы используете другую IDE, вам нужно проверить, может ли она уже отображать подсказки вкладок, иначе вы не сможете воспользоваться этой новой функцией.

Если вы являетесь пользователем VSCode, убедитесь, что в вашей системе установлена ​​последняя версия IDE, последняя версия плагина Deno и версия 1.27 Deno.

Теперь имейте в виду, что TypeScript 4.4 был выпущен более года назад, и вложенные подсказки были не единственной функцией, которая была добавлена ​​вместе с ним. Таким образом, Deno на самом деле способен делать гораздо больше в сочетании с IDE, такой как VSCode. Ознакомьтесь с Примечаниями к выпуску TS, если хотите узнать об этом больше.

Улучшено заполнение реестра

Как и раньше, это улучшение не самого языка, а связанного с ним сервиса.

В данном конкретном случае мы говорим о поисковой системе, которая обеспечивает заполнение реестра. Эта служба используется вашей IDE (обычно, если она «достаточно умна»), когда вы пытаетесь import что-то вставить в свой код.

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

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

Улучшенная поддержка NPM

Начиная с версии 1.25 Deno предоставляет совместимость с NPM для разработчиков, чтобы они могли начать использовать его и оставлять отзывы.

В этом выпуске продолжает добавляться поддержка NPM в надежде экспоненциально увеличить количество библиотек, доступных для среды выполнения.

Хотя впереди еще много работы, в этом выпуске добавлены такие вещи, как:

  • Извлечение типов из пакетов NPM, которые предоставляют их для файлов TypeScript.
  • Добавлена ​​поддержка Node-API (раньше он назывался N-API). Это важно, поскольку этот API используется для запуска собственного кода в Node.js, и многие пакеты используют его. В основном такие, как parcel , sqlite3 , usb и другие. Это открывает двери для совместимости этих пакетов с Deno.

Есть и другие улучшения, но эти 2 самые интересные.

Добавлен API «navigator.language» — «navigator.languages».

Это немного странно, хотя я думаю, что понимаю, почему они пошли с ним.

До сих пор одной из основных философий, лежащих в основе реализации Deno, была полная совместимость с веб-API. По сути, каждый отдельный стандарт JavaScript должен быть реализован в Deno, даже если в данный момент он не используется ни одним браузером.

Среда выполнения Deno — это, в основном, внутренняя среда выполнения, такая же, как и Node. Однако они добавили API-интерфейсы navigator.language и navigator.languages, используемые для понимания предпочтений пользователя в отношении языка.

Обычно значение из navigator.language представляет собой строку, на которую в случае Deno могут влиять переменные среды, такие как LC_ALL для систем Linux. А в случае navigator.languages (обратите внимание на форму множественного числа) это массив со значением navigator.language в качестве первого элемента. Обычно на остальные значения влияет заголовок Accept-Language, отправленный клиентом, но в случае Deno эта информация еще не ясна, хотя я ожидаю, что они будут следовать тому же стандарту.

Deno API немного изменился

Не беспокойтесь, это не было плохим изменением, вместо этого некоторые ранее нестабильные методы не помечены как стабильные, поэтому вам не нужно указывать флаг unstable.

Это:

  • Deno.consoleSize()
  • Deno.futime()
  • Deno.futimeSync()
  • Deno.loadavg()
  • Deno.osRelease()
  • Deno.stdin.setRaw()
  • Deno.utime()
  • Deno.utimeSync()

А некоторые другие, такие как Deno.kill() , Deno.getGid() , Deno.getUid() и другие, были немного изменены, поэтому ознакомьтесь с новой документацией, если вы их используете.

Понравилось ли вам то, что вы прочитали? Подпишитесь на мой БЕСПЛАТНЫЙ информационный бюллетень, где я делюсь со всеми своим 20-летним опытом работы в ИТ-индустрии. Присоединяйтесь к Бродяге старого разработчика!

Есть новая версия V8

Deno использует версию 10.8 движка среды выполнения JavaScript (V8), и что интересно, включение новой обновленной версии также привносит в язык новые функции просто потому, что команда разработчиков V8 уже добавила их.

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

Например, теперь у вас будет метод toReversed(), который будет переворачивать массив и возвращать новую версию, не затрагивая исходный массив.

Вы также получите метод toSorted() для сортировки значений массива и возврата их как новых.

Это предложение этапа 3, что означает, что реализация несколько закончена, но они ждут отзывов от пользователей, чтобы понять, требуются ли дальнейшие доработки. Если все пойдет хорошо, этап 4 должен стать последним этапом предложения, на котором будет указано, что функция готова к добавлению в стандарт ECMAScript.

Если вы внимательно следите за этими обновлениями и другими, такими как недавнее объявление о выпуске Node 19, вы начнете видеть, как они «вдохновляются» друг другом. Node добавляет флаг --watch, а Deno начинает предоставлять сервис, похожий на NPM, для поиска пакетов. Приведет ли эта тенденция в конечном итоге к тому, что они станут единой средой выполнения?

Что вы думаете?

Это конкретное обновление добавило много функций, которые хороши с точки зрения разработчика (например, подсказки-вкладки из TypeScript), но не многие из них коренным образом изменили язык.

Вы в восторге от этих обновлений?

Создавайте компонуемые веб-приложения

Не создавайте веб-монолиты. Используйте Bit для создания и компоновки несвязанных программных компонентов — в ваших любимых средах, таких как React или Node. Создавайте масштабируемые и модульные приложения с мощными и приятными возможностями разработки.

Перенесите свою команду в Bit Cloud, чтобы вместе размещать компоненты и совместно работать над ними, а также ускорять, масштабировать и стандартизировать разработку в команде. Попробуйте компонуемые внешние интерфейсы с помощью Design System или Микроинтерфейсы или изучите компонуемые внутренние интерфейсы с серверными компонентами. .

Попробуйте →

Узнать больше