Fresh — новый Full Stack фреймворк для Deno

Fresh позиционируется как современный фреймворк на TS/JS, спроектированный для легкого создания высококачественных и производительных веб-приложений. Preact для описания UI. 0 кб JS поставляется на клиент по умолчанию. Максимально быстрая загрузка страницы. Количество работы на клиентской части сведено к минимум. Ошибки должны затрагивать как можно меньшую часть системы. Ну и давайте к примерам. Deno загрузит пакеты, спросит хотите ли использовать twind и затем сгенерирует проект с 3 роутами и одним островом (island). В данном случае сгенерировался с командой для запуска приложения (deno task start) и указанием где искать файл с картами импортов. Про это как-то уже писал статью. Именно его запускает команда deno task start. Генерируется автоматически на основе директорий routes и islands. Наряду с обычными файлами проекта так же должен быть в git. Код содержащий в этой директории может быть запущен как на клиенте, так и на сервере. Компоненты из этой директории не будут напрямую передаваться на клиентскую часть. Система роутов основана на файлах и их расположении относительно директории routes (file based routing).

n

Подход не новый, в том же Next.js подобное уже давно есть. Обычные названия файлов/директорий обрабатывают статичную часть пути. Роуты описывают как должен быть обработан запрос и что должно быть отправлено в ответ. Поэтому роуты состоят из двух частей: обработчиков (handlers) и компонентов (components). Роут может содержать одну из частей или обе. И тут начинаются первые странности. Я так до конца и не понял, почему нужно именно так экспортировать Preact. Обработчик определяется через экспорт объекта handlers. Обработчик может представлять из себя функцию или объект. Если он определён как объект, как в нашем случае, то каждый ключ в объекте должен соответствовать обрабатываемому HTTP-методу. Далее видно, что информацию о текущем id статьи мы может получить из параметров контекста запроса (ctx.params). Из контекста запроса мы и вызываем темплейт через ctx.render описанный через компонент на Preact, передавая ему найденную (или нет) статью и возвращая результат из обработчика GET. Фреш передаёт в props компонента поле data содержащее нашу статью, ну и дальше обычная работа с JSX. Вообще, чтобы отправить ответ, нам не обязательно писать для этого компонент.

n

Response, объект которого мы можем получить напрямую через конструктор. Этот вариант прекрасно подходит для создания HTTP API. Как и другие миддлвари, тут так же можно модифицировать ответы. Каждый обработчик через контекст-аргумент получает функцию next для вызова последующих обработчиков. В контексте запроса также есть поле state, для пробрасывания промежуточной информации дальше. Middleware может быть разбито по слоям и для разных роутов могут быть разные middleware-обработчики. Острова отвечают за интерактивность на странице и представляют из себя изолированные Preact-компоненты. Они располагаются в директории /islands проекта. Имя файла должно быть формате PascalCase и должно содержать export default. Остров может без проблем использоваться в компоненте роута, а Фреш сам позаботится об его регидратации на клиенте. При инициализации проекта был создан один остров в islands/Counter.tsx. Он ни чем не отличается от обычного preact-компонента, но есть один нюанс. В качестве props могут передаваться только типы, которые поддерживаются при сериализации JSON. Сложные объекты типа Date, функций, классов или тех же children Фреш пока не умеет передавать, а это означает, что вложенные острова тоже не поддерживаются. Как бы я ни радовался развитию конкуренции с Node.js и его фреймворками, Fresh пока не вызвал однозначно положительных эмоций. С одной стороны, отсутствие сборки, есть SSR из коробки (SEO-шники будут довольны), приятная система роутинга, отлично прописаны типы. И это всё прекрасно интегрируется со стандартными веб-технологиями, использование того же Response, реализованного в Deno, это просто отлично.

n

Могу ли я перейти с ИТС ПРОФ на 1С:Фреш? Как перейти из обычной локальной версии программы на версию 1С:Фреш не потеряв при этом данные? Как узнать свой регистрационный номер (код абонента)? Смогу ли я работать в сервисе при медленном интернет-соединении? Где хранятся данные информационной базы? Какой браузер выбрать для работы в 1С:Фреш? Есть ли в сервисе возможность работы с “Клиент банком”? Как взаимодействует сервис 1С-Отчетность с 1С:Фреш ? Как сделать резервную копию в сервисе? Как узнать срок действия договора/лицензии? Есть ли ограничения на размер базы данных в 1С:Фреш? Любое предприятие должно вести учёт своей деятельности и отчитываться по налогам. Программа 1С:Фреш разработана для индивидуальных предпринимателей и организаций любой правовой формы. Здесь есть возможность вести хоздеятельность по нескольким предприятиям, сдавать регламентированную отчётность, анализировать данные и проводить экспресс проверку. В обзоре мы подробно расскажем о регистрации личного кабинета в системе 1С:Фреш. А также опишем его возможности и тарифы, чтобы Вы смогли составить полное представление о ресурсе, его плюсах и минусах.

n

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *