Wake up Remix. framework.. framework. frontend.. framework. frontend. JavaScript.. framework. frontend. JavaScript. react.. framework. frontend. JavaScript. react. react router.. framework. frontend. JavaScript. react. react router. react.js.. framework. frontend. JavaScript. react. react router. react.js. ReactJS.. framework. frontend. JavaScript. react. react router. react.js. ReactJS. remix.. framework. frontend. JavaScript. react. react router. react.js. ReactJS. remix. Блог компании FirstVDS.. framework. frontend. JavaScript. react. react router. react.js. ReactJS. remix. Блог компании FirstVDS. Веб-разработка.. framework. frontend. JavaScript. react. react router. react.js. ReactJS. remix. Блог компании FirstVDS. Веб-разработка. Программирование.
Wake up Remix - 1

На конференции React прошлым летом команда объявила, что Remix «уходит в спячку».

К тому моменту Remix v2 стал настолько тонкой обёрткой над React Router, что между проектами возникло искусственное разделение. Чтобы упростить архитектуру фреймворка, команда перенесла код сборщика и серверного рантайма из Remix непосредственно в React Router v7, объединив всё лучшее из фреймворка в так называемый “framework mode” для роутера. Также было объявлено о планах добавить ограниченную поддержку React Server Components (RSC) в React Router.

Эта работа была завершена: версия 7 была выпущена в ноябре прошлого года, а в конце мая была представлена предварительная поддержка RSC. Теперь разработчики, использовавшие Remix v1, v2 или более ранние версии React Router, могут рассчитывать на стабильную платформу с долгосрочной поддержкой.

Теперь же, пришло время заняться Remix!

React Router оказался действительно хорошим

Когда команда приступила к развитию Remix, ожидалось, что он станет полнофункциональным full-stack фреймворком для React с приоритетной поддержкой React Server Components (RSC) — новым взглядом на архитектуру full-stack React.

Но по ходу работы произошло нечто неожиданное: React Router v7 стал действительно очень мощным инструментом.

Благодаря внедрению поддержки RSC в React Router теперь существует плавный путь постепенного внедрения, позволяющий возвращать серверные компоненты напрямую из loaders и actions. Более того, была реализована полноценная поддержка серверных маршрутов — функциональность, которую изначально планировалось включить в следующую версию Remix.

Если все маршруты приложения являются серверными, то React Router v7 уже ощущается как логичное продолжение развития Remix. Отличия между ними тонкие и не касаются структуры.

И это не только технически зрелое решение команды — оно проверено на практике. Сегодня React Router используется в приложениях таких компаний, как Shopify, X.com (деятельность компании запрещена на территории РФ), GitHub, ChatGPT, Linear, T3Chat и многих других — всего почти в 11 миллионах проектов на GitHub. React Router находится всего в одном минорном релизе от полной поддержки всей архитектуры React. У него есть выделенная команда, долгосрочная поддержка и модель открытого управления, которая призвана обеспечить устойчивое развитие на годы вперёд.

Что же это значит для Remix?

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

Новый путь

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

Ранее у команды были идеи, которые казались слишком радикальными, чтобы реализовать их. Но теперь, когда Remix больше не привязан к определённой парадигме, появилась свобода исследовать новые подходы.

Remix v3 — это переосмысление того, каким может быть веб-фреймворк. Новое основание, сформированное на основе многолетнего опыта разработки для веба. Основное внимание уделяется простоте, ясности и производительности — без отказа от мощности, необходимой разработчикам.

Это модульный набор инструментов, элементы которого хорошо работают вместе, но могут использоваться и по отдельности — от встроенных драйверов для баз данных до собственной библиотеки компонентов (пора пробудить и Reach UI!).

Это не просто новая версия — это новое направление. Быстрее, проще и ближе к самому вебу.

Чтобы реализовать это, необходим полный контроль над стеком — без опоры на слои абстракции, находящиеся вне сферы управления. Это означает отсутствие критических внешних зависимостей — даже у React. В качестве основы используется форк Preact — зрелой библиотеки виртуального DOM, уже широко применяемой в Shopify, Google и множестве других проектов.

Для Remix v3 команда делает ставку на простоту, ориентированную на рантайм: без сборщика в режиме разработки и, скорее всего, без него и в продакшене — благодаря нативному ESM и современным стратегиям доставки через CDN.

Без HMR(Hot Module Replacement) — только чистые и быстрые перезагрузки. Цель — минимизировать инструментарий, устранить критические зависимости и создать фреймворк, который будет ближе к самой платформе. Команда не считает, что Vite необходим для отличного DX, хотя при желании его можно подключить.

Что касается Preact: это осознанный компромисс в пользу простоты и контроля. Экосистема React огромна — как и её сложность. Команда делает ставку на более лёгкое ядро, стабильные API и хорошие значения по умолчанию, чтобы сделать фреймворк более доступным без потери мощности и гибкости.

Если когда-либо возникало желание работать в более лёгкой, быстрой и ориентированной на саму природу веба среде, Remix v3 создаётся именно для этого.

Новые принципы разработки:

Хотя предварительный релиз ещё не готов, разработка Remix v3 ведётся на основе следующих принципов:

  • Модель-прежде-всего (Model-First Development).
    Искусственный интеллект радикально меняет модель взаимодействия между человеком и компьютером — как в пользовательском опыте, так и в рабочих процессах разработчиков. Исходный код, документация, инструменты и абстракции проектируются с прицелом на эффективность работы больших языковых моделей (LLM). Кроме того, создаются абстракции, позволяющие использовать модели непосредственно в продуктах, а не только как средства разработки.

  • Опора на Web API.
    Общие абстракции по всему стеку значительно сокращают количество переключений контекста — как для людей, так и для машин. В качестве основы используется Web API и JavaScript, как единственная по-настоящему full stack экосистема.

  • Ориентированность на рантайм (Religiously Runtime).
    Проектирование с расчётом на бандлеры, компиляторы или генерацию типов (и любую другую статическую аналитику на этапе до выполнения) приводит к неудачным API, загрязняющим архитектуру. Все пакеты проектируются без предположений о статическом анализе, а все тесты запускаются без сборки. Поскольку речь идёт о браузерах, допустимы только простые трансформации через --import-лоадеры, например, для TypeScript и JSX.

  • Минимизация зависимостей.
    Зависимости привязывают проект к чужим планам развития. Поэтому каждая из них должна быть выбрана осознанно, полностью инкапсулирована и готова к последующей замене собственным пакетом. Цель — достичь нуля внешних зависимостей.

  • Композиционность как требование (Demand Composition).
    Абстракции должны быть узконаправленными и взаимозаменяемыми. Хорошо спроектированная абстракция легко подключается и удаляется из существующего проекта. Каждый пакет должен быть полезен и документирован независимо от других. Новые возможности сначала реализуются в виде отдельного пакета. Если это невозможно — пересматривается структура существующего, чтобы сделать его более гибким. Однако модули, которые тесно связаны и почти всегда изменяются совместно, объединяются в один пакет.

  • Единый способ распространения (Distribute Cohesively).
    Крайне композиционные экосистемы могут быть сложны в изучении и применении. Поэтому все отдельные пакеты объединяются в единый дистрибутив (например, remix) с переэкспортом и общей документацией — как единый инструментарий.

Remix V3 обещает стать интересным решением. Идея упростить стек и перейти под капотом на Preact уже вызвала живой отклик в фронтенд-сообществе. Пока трудно сказать, было ли это правильным решением, но мы с нетерпением будем следить за развитием проекта и желаем ему успехов на этом нелегком пути.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Автор: YukinoKingu

Источник

Rambler's Top100