Обновить

Комментарии 12

Хотя бы статью так люто не меняйте с ИИ. Я не успеваю вставлять цитаты

Автор видно много любит писать не только код с помощью AI, но и текст. Наверно, уже настолько превзошел всех нас. Давайте посмотрим на его мнение:

Речь не о том, что я не понимаю, как фреймворки устроены или как ими пользоваться. Скорее, это то самое интуитивное ощущение, знакомое многим разработчикам: когда код формально работает, но ты понимаешь, что при определённых условиях он может сломаться.

Помните jQuery? Он был хорош в плане тотальной совместимости

Видимо, насчёт опыта и понимания я погарячился

Достаточно большой сайт с 40 кб бандлом... наверное, вы очень хорошо оптимизируете код

Думаю, я просто пишу мало кода, так как не требуется особо большой функционал

Статья-галлюцинация.

Я не понимаю почему "серверный рендеринг" называется серверным рендерингом. Ведь если бы рендеринг был на сервере - в браузер падала бы jpeg ну или один единственный svg. Но браузер же видит html, css и начинает их рендерить. И почему реактивные фреймворки это фронт? Ведь приложение по сути запущено на сервере, считай на бекенде.

Принимайте как шутку (нет).

Интересное замечание. При реализации SPA браузер выполняет цепочку дейсвий: Получает JS → делает на лету HTML → выполняет визуализацию. При "серверном рендеринге" первая часть выполняется на сервере, то есть получается это действительно не полноценный рендеринг, так сказать, а сбор HTML посредством JS.

один единственный svg

Который тоже нужно отрендерить.

Но браузер же видит html, css и начинает их рендерить.

При так называемом "клиентском рендеринге" браузер получает лишь пустой HTML-каркас и JS-скрипт, который при выполнении создаёт страницу на клиенте посредством множества createElement(). Только после этого она рисуется.

Ведь приложение по сути запущено на сервере, считай на бекенде.

Это не обязательно. Сервер может просто отдавать клиенту собранный JS-бандл при запросах.

Надеюсь, сам понимаю правильно.

У вас немного странное ощущение о «хрупкости» современных фреймворков. Что может сломать их? Они разработаны с учетом работы почти на всех устройствах и имеют достаточно простой принцип работы. Не представляю, как можно разрабатывать сайт с хоть сколько-то динамическим контентом без фреймворков, через некоторое время начинаешь сталкиваться с теми же проблемами, что и их создатели, и в конечном итоге приходишь к похожим решениям

У вас немного странное ощущение о «хрупкости» современных фреймворков.

Уверен, вы правы - это лишь моё субъективное мнение.

Что может сломать их?

Неумелое мною использование, полагаю. Моя мысль в том, что для "хоть сколько-то динамического" контента нет сложностей и острой необходимости использовать фреймворки. Есть же события и так далее.

Так и есть. Браузер и css уже давно подросли и предлагают богатый функционал. А фреймворки пытаются решать давно не существующие задачи. На 90% сайтов они не нужны. Достаточно базы. Ну htmx на крайний случай, вместо axios, не по тому что не работает, а из-за декларативности подхода. Еще популярность набирает alpine.js - современный jquery.
Далеко не всем нужны эти фреймворки. Задачи не те.

Представьте, вы создаёте пустой проект на Vue.js и собираете его - и что же? Файл app.js весит почти мегабайт! Да, есть gzip, оптимизация зависимостей и прочие вещи, но для пустого проекта это выглядит чрезмерно, согласитесь.

А вот это полуправда. Я специально создал пустой проект через npm create vue@latest, добавив туда pinia и router. И дефолтный их пример.
Да, в dev режиме бандл весит очень много, больше 3 мб. Но это на то и dev, там куча обвязки для комфортного дебага, вроде того же vue dev tools, hot module replacement. А вот если собирать под продакшн, то картина резко меняется.

Получилось ~100кб после npm run build. 40кб с gzip. Да, то же самое на голом js было бы сильно меньше. Но:

1) Множество функционала, который фреймворки дают из коробки, я бы не хотел переписывать в здравом уме. Вроде менеджера состояния или роутера. Хорошо, когда этот функционал не нужен. А если все же нужен?
2) Это все еще очень далеко от 1 Мб.
2) Даже не минимизированный целый vue с cdn в несжатом виде все еще меньше, примерно ~600 кб (130 кб gzip).
3) Почему мы выбрасываем из картины инструменты оптимизации, которые включены по умолчанию? Для их отключения надо приложить сознательные усилия.

так как иначе картина будет выглядеть не такой ужасной. В реальном мире 40кб это даже не 1/10 от размера бандла.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации