логотип PurpleSchool
логотип PurpleSchool

Fullstack на Golang

Когда я начинал писать приложения лет 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
изображение курса

Основы Golang

Антон Ларичев
иконка звёздочки рейтинга4.7
бесплатноПодробнее
Основы Golang
Бесплатно