Антон Ларичев
Когда я начинал писать приложения лет 15 назад, не было такого понятия как Frontend. Был сайт, скажем, на php, где все рендерилось на сервере, а если нужно было немного динамики, добавляли JS. По сути — все SSR.
Но Frontend развивался, клиентские приложения становились больше, начинали содержать кучу логики и появились SPA (Single Page Application), которые формировали UI исключительно при выполнении JS на клиенте. Это давало более плавные UI, но нагружало клиент, увеличивало время до первого взаимодействия и не давало нормально индексировать сайт, если он был целиком на JS. Для индексации даже придумали пререндер, который в headless хроме проходился по сайту и после рендера складывал голые html файлы для роботов.
Теперь мы видим обратный тренд с SSR на Next, Nuxt. Чтобы сделать, скажем, новостной сайт нужно:
— Развернуть Next приложение, проработав разделение клиентских и серверных компонент
— Написать и поднять API
— Интегрировать их между собой
— Сломать пару клавиатур, разобравшись в кэше Next, между парой подов и проблемами с Ingress
— И так далее
Все это замедляет разработку и повышает косты. Конечно, это оправдано для сайтов, где на Frontend очень много логики, работы с состояниями и сложный UI. Но для новостного сайта, блога, рейтингов и многого другого — это избыточно.
В результате мы пришли к тому, что если на фронте описанное выше не нужно — проще использовать старый добрый подход, но уже на современном стеке: Golang, Fiber, Templ — прекрасная производительность, декомпозиция на компоненты и скорость разработки. А для динамики — HTMX. Про этот стек, думаю скоро, будет новый курс в разделе Go.
Комментарии
0