SUPER_OLEG_DEV Telegram 46
В заголовке статьи присутствует совершенно новый для меня термин - Resumable Javascript. Его подробное объяснение можно прочесть в репозитории фреймворка на github - https://github.com/BuilderIO/qwik/blob/main/docs/RESUMABLE.md, и в этом комментарии - https://dev.to/ryansolid/comment/1lnip к статье про проблемы эффективной гидрации.

Для понимания термина, приводится пример современных фреймворков, которые являются Replayable - после инициализации приложения на сервере, требуется полный replay приложения на клиенте, т.е. процесс гидрации со всеми его минусами.

Resumable фреймворк умеет продолжать работу с разметкой, которую инициализировал сервер, т.е. не требует загружать и исполнять код всего приложения, сравнивать DOM и повторно загружать данные. Вместо этого, в соответствии с действиями пользователя, будет загружаться код, нужный только для реакции на это действие, будь то загрузка данных, SPA переход или обновление HTML на странице.

Qwik делает это возможным благодаря сериализации всех важных данных в HTML разметке, и разделения их на категории:

- Указатели на DOM события
- Состояние компонентов
- Указатели на шаблоны компонентов
- Связи между различными реактивными состояниями

Используя такое разделение, и сериализации всех данных приложения, Qwik реализует точечную ленивую загрузку кода для обработчиков событий, и кода с разметкой компонентов (мой небольшой личный разрыв шаблонов, оказывается код обработчиков событий и код компонентов можно разделить и грузить отдельно!).

Итоговая цель фреймворка - точечная регидрация компонентов вне зависимости от их положения в дереве компонентов приложения. Summary по ленивой загрузке также доступно в репозитории фреймворка - https://github.com/BuilderIO/qwik/blob/main/docs/LAZY_LOADING.md.

Между делом, попался интересный issue - https://github.com/solidjs/solid/issues/264 по поводу Partial Hydration для Solid.js, где автор рассматривает ряд вариантов для реализации фичи, и самой перспективной видит возможность грузить template код компонентов по требованию.

Более подробная статья про то, как Qwik добивается гранулированной загрузки данных - https://dev.to/builderio/qwik-the-answer-to-optimal-fine-grained-lazy-loading-2hdp

Демка todo-app на Qwik - https://stackblitz.com/edit/qwik-todo-demo. В этой демке очень наглядно, при взаимодействии с приложением, загружается по отдельности JS код обработчиков и шаблонов компонентов.

В итоге, не разбирая специально статью Resumable JavaScript with Qwik, мы почти полностью рассмотрели все концепции, которые она затрагивает. Рекомендую к прочтению и комментарии к статьям, в них есть много интересных мыслей.

Например, из интересного, есть twitter тред про Partial Hydration - https://twitter.com/RyanCarniato/status/1489077057942220803, где один из авторов Remix Райан Флоренс говорит о том, что демки не доказывают профита от всех этих сложностей с гидрацией, и в Remix отлично работает подход Progressive Enhancement.

Мне показалось это не очень честным, например можно увидеть значительно большее количество кода у Remix (читай React) демки, чем у Marko и Qwik. Также, сложно назвать это demo приложение чем-то сложным и большим, для настоящих приложений с тяжелыми страницами частичная гидрация принесет еще больше заметной пользы.

Единственное, что мы пока не рассмотрели, это проблемы фреймворка и подхода частичной гидрации. Если коротко:

- Qwik еще сырой
- Документация не полная
- Даже при частичной гидрации есть критичные вещи, которые надо грузить сразу
- Потенциальный waterfall загрузки скриптов, лучше грузить все параллельно или в одном бандле
- Необходимо умное разделение кода, это требует большой работы над тулингом

Думаю это не полный список, и определенно стоит ждать real-world кейсов использования фреймворка.



tgoop.com/super_oleg_dev/46
Create:
Last Update:

В заголовке статьи присутствует совершенно новый для меня термин - Resumable Javascript. Его подробное объяснение можно прочесть в репозитории фреймворка на github - https://github.com/BuilderIO/qwik/blob/main/docs/RESUMABLE.md, и в этом комментарии - https://dev.to/ryansolid/comment/1lnip к статье про проблемы эффективной гидрации.

Для понимания термина, приводится пример современных фреймворков, которые являются Replayable - после инициализации приложения на сервере, требуется полный replay приложения на клиенте, т.е. процесс гидрации со всеми его минусами.

Resumable фреймворк умеет продолжать работу с разметкой, которую инициализировал сервер, т.е. не требует загружать и исполнять код всего приложения, сравнивать DOM и повторно загружать данные. Вместо этого, в соответствии с действиями пользователя, будет загружаться код, нужный только для реакции на это действие, будь то загрузка данных, SPA переход или обновление HTML на странице.

Qwik делает это возможным благодаря сериализации всех важных данных в HTML разметке, и разделения их на категории:

- Указатели на DOM события
- Состояние компонентов
- Указатели на шаблоны компонентов
- Связи между различными реактивными состояниями

Используя такое разделение, и сериализации всех данных приложения, Qwik реализует точечную ленивую загрузку кода для обработчиков событий, и кода с разметкой компонентов (мой небольшой личный разрыв шаблонов, оказывается код обработчиков событий и код компонентов можно разделить и грузить отдельно!).

Итоговая цель фреймворка - точечная регидрация компонентов вне зависимости от их положения в дереве компонентов приложения. Summary по ленивой загрузке также доступно в репозитории фреймворка - https://github.com/BuilderIO/qwik/blob/main/docs/LAZY_LOADING.md.

Между делом, попался интересный issue - https://github.com/solidjs/solid/issues/264 по поводу Partial Hydration для Solid.js, где автор рассматривает ряд вариантов для реализации фичи, и самой перспективной видит возможность грузить template код компонентов по требованию.

Более подробная статья про то, как Qwik добивается гранулированной загрузки данных - https://dev.to/builderio/qwik-the-answer-to-optimal-fine-grained-lazy-loading-2hdp

Демка todo-app на Qwik - https://stackblitz.com/edit/qwik-todo-demo. В этой демке очень наглядно, при взаимодействии с приложением, загружается по отдельности JS код обработчиков и шаблонов компонентов.

В итоге, не разбирая специально статью Resumable JavaScript with Qwik, мы почти полностью рассмотрели все концепции, которые она затрагивает. Рекомендую к прочтению и комментарии к статьям, в них есть много интересных мыслей.

Например, из интересного, есть twitter тред про Partial Hydration - https://twitter.com/RyanCarniato/status/1489077057942220803, где один из авторов Remix Райан Флоренс говорит о том, что демки не доказывают профита от всех этих сложностей с гидрацией, и в Remix отлично работает подход Progressive Enhancement.

Мне показалось это не очень честным, например можно увидеть значительно большее количество кода у Remix (читай React) демки, чем у Marko и Qwik. Также, сложно назвать это demo приложение чем-то сложным и большим, для настоящих приложений с тяжелыми страницами частичная гидрация принесет еще больше заметной пользы.

Единственное, что мы пока не рассмотрели, это проблемы фреймворка и подхода частичной гидрации. Если коротко:

- Qwik еще сырой
- Документация не полная
- Даже при частичной гидрации есть критичные вещи, которые надо грузить сразу
- Потенциальный waterfall загрузки скриптов, лучше грузить все параллельно или в одном бандле
- Необходимо умное разделение кода, это требует большой работы над тулингом

Думаю это не полный список, и определенно стоит ждать real-world кейсов использования фреймворка.

BY SuperOleg dev notes


Share with your friend now:
tgoop.com/super_oleg_dev/46

View MORE
Open in Telegram


Telegram News

Date: |

But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name.
from us


Telegram SuperOleg dev notes
FROM American