В очередной раз был выпущен новый фреймворк JavaScript. На этот раз это немного отличается от обычной истории. Fresh — это полноценный фреймворк для Deno с интересной архитектурой и подходом. Но сначала, что такое Deno?

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

Deno — это среда выполнения JavaScript. Среда выполнения — это программа, которая, с одной стороны, выполняет JavaScript с помощью движка JavaScript, а с другой стороны, предоставляет функции и библиотеки разработчика для обычных случаев использования, таких как веб-сокеты или файловая система. Самая популярная среда выполнения JavaScript — NodeJS.
Deno хочет стать альтернативой NodeJS. Он был разработан основателем NodeJS, но имеет некоторые отличия в подходе. Прежде всего, это делает упор на безопасность приложений. Разработчик должен вручную разрешать определенные операции, такие как доступ к файлам. Он также поддерживает TypeScript из коробки, имеет ожидание верхнего уровня и большое количество стандартных модулей. Кроме того, как и NodeJS, он использует движок Google V8 JavaScript. Он был разработан в Rust. К сожалению, пакеты NPM не будут работать с Deno. Поэтому Deno и NodeJS — это два разных мира, по крайней мере, когда речь идет о фреймворках.

А как же Свежий?

Отсутствие пакетов NPM означает, что более крупные фреймворки, такие как Next.js, Remix или даже Gatsby, недоступны. Теперь Fresh стремится заполнить этот пробел. При этом он также имеет свои интригующие подходы и особенности.

  1. Во-первых, Fresh делает ставку на островную архитектуру. Здесь статические области приложения преобразуются в HTML. Однако интерактивные части по-прежнему используют JavaScript. Эти интерактивные области называются островами. Преимущество такого подхода в том, что веб-сайт в целом не нужно рендерить снова и снова. Кроме того, отдельные острова могут загружаться независимо друг от друга. Этот подход пытается объединить интерактивность приложений с визуализацией на стороне клиента (CSR) с преимуществами SEO приложений с визуализацией на стороне сервера. Это также снижает нагрузку на JavaScript.
  2. Второй важной особенностью Fresh является то, что он не требует этапа сборки. Для этого не требуется предварительное создание веб-страницы.
  3. TypeScript поддерживается с самого начала, как и маршрутизация.
    Кроме того, Fresh полагается на Edge. Это означает, что Fresh с самого начала предназначен для работы на Edge. Но что означает Край?

Что такое «край»?

«Edge» обозначает определенную серверную архитектуру. Вместо использования одного сервера для всех глобальных запросов используется несколько серверов с одной и той же программой по всему миру. Таким образом, расстояние между пользователем и сервером сокращается. Это приводит к более быстрой связи между сервером и конечным пользователем. Однако в нашем случае периферия означает в основном бессерверные функции, распределенные по нескольким серверам по всему миру. Полезность для конечного приложения зависит от степени децентрализации данного приложения. Если функции могут выполняться сами по себе, периферия может дать преимущество в скорости. Однако, если данные должны быть загружены с определенной точки, преимущество иногда ограничено.

Краткое содержание

Fresh имеет интересные подходы и современный набор функций. Тем не менее, решающим моментом является использование Deno. Для мира Deno Fresh — очень желанная структура, поскольку она расширяет возможности полного стека Deno. Но если у вас есть сложное приложение поверх существующей архитектуры NodeJS, использующее множество пакетов NPM, переключение оказывается затруднительным.