[Перевод] Рендеринг — это не про сервер

Когда меня просят подсказать, как структурировать веб-сервис, я всегда начинаю с одного и того же: напишите сервер, который в ответ на HTTP-запросы выдаёт текст в формате HTML. Это наиболее долговечный, финансово оправданный и понятный пользователю способ написать веб-сервис . Большинство веб-сервисов следует выстраивать именно так, если только у вас нет очень веской причины действовать иначе. Выслушав меня, веб-разработчики часто отвечают: «о, так вам нравится рендеринг на стороне сервера», на что я обычно, поморщившись, парирую — «да, в какой-то мере». Не распыляйтесь по пустякам, если собеседника отделяет от вас десятилетие невежества. Хотя бы они понимают, о чём я. Но «рендеринг на стороне сервера» — ужасный термин. Он подразумевает, что сервер не просто больше работает, но и выполняет сложную работу — такую, которую лучше оставить экспертам. Ни то, ни другое не соответствует истине. На самом деле, «рендеринг» на стороне сервера можно организовать почти без труда, какой бы язык программирования вы ни предпочитали. Стоит вам это понять — и Веб откроется вам таким, каким его вижу я: как самый простой, лёгкий и наиболее мощный интерфейс для вычислений, какой только есть на свете.

https://habr.com/ru/articles/1015354/

#React #HTML #serverside_rendering #json #вебсайт #api

Рендеринг — это не про сервер

Когда меня просят подсказать, как структурировать веб-сервис, я всегда начинаю с одного и того же: напишите сервер, который в ответ на HTTP-запросы выдаёт текст в формате HTML. Это наиболее...

Хабр

Как мы изобрели PHP, но в 10 раз медленнее: почему React Server Components – это архитектурный тупик

На днях я стряхнул пыль с небольшого пет-проекта. Это простой блог, наверняка каждый из вас хотя бы думал о таком для себя. В 2015 году я бы просто закинул файлы по FTP на хостинг за 100 рублей. Время деплоя: 30 секунд. В 2026 году я потратил 4 часа. Я настраивал Edge Middleware , дебажил рассинхрон HTML между клиентом и сервером (hydration mismatch) и разбирался, почему облако не хочет дружить с моей базой данных из-за долгого пробуждения функций (холодного старта) . Где мы свернули не туда? Это колесо Сансары , которое дало новый оборот.

https://habr.com/ru/articles/1005838/

#react #nextjs #php #архитектура_по #serverside_rendering #hydration #performance #история_it #холивар #мнения

Как мы изобрели PHP, но в 10 раз медленнее: почему React Server Components – это архитектурный тупик

Вступление: 4 часа на деплой контентного сайта На днях я стряхнул пыль с небольшого пет-проекта. Это простой блог, наверняка каждый из вас хотя бы думал о таком для себя. В 2015 году я бы просто...

Хабр

[Перевод] Проблемы, которых у меня больше нет, потому что я использую рендеринг на стороне сервера

Новый перевод от команды Spring АйО расскажет вам, каких проблем можно избежать, если пользоваться подходом “Рендеринг на стороне сервера” и в чем преимущества такого подхода в целом по сравнению с подходом Single Page Application.

https://habr.com/ru/companies/spring_aio/articles/899832/

#Java #kotlin #spring_boot #Thymeleaf #htmx #Single_Page_Application #spa #serverside_rendering #SSR

Проблемы, которых у меня больше нет, потому что я использую рендеринг на стороне сервера

Новый перевод от команды Spring АйО расскажет вам, каких проблем можно избежать, если пользоваться подходом “Рендеринг на стороне сервера” и в чем преимущества такого подхода в целом по сравнению с...

Хабр

Путешествие по Next.js: от ошибок с not-found до форка next-runtime-env

Недавно столкнулся с интересным багом в Next.js. Если на странице not-found делать навигацию через router.push(pathname) , теряются все переменные окружения, которые мы инициализируем через библиотеку next-runtime-env (значение window.__ENV становится undefined ). В проекте мы используем next-runtime-env , так как придерживаемся подхода Build once, deploy many — это позволяет держать один Docker-образ, в который при запуске прокидываются нужные переменные окружения. Next.js из коробки не поддерживает такое поведение, ведь он хочет собирать env-переменные на этапе сборки приложения. Баг проявился на not-found странице, где у нас есть кнопка, позволяющая создать элемент в один клик, если что-то не найдено. Этот же компонент кнопки используется и на других страницах, и вот что интересно: на остальных страницах router.push(pathname) работает корректно, а на not-found — нет. Сначала я подумал, что проблема кроется в next-runtime-env . Наверное, библиотека переопределяется при обновлении страницы, потому что скрипт, устанавливающий переменные в window.__ENV , размещён в root layout. Я также пробовал версионировать Next.js, предполагая, что баг связан с определёнными версиями фреймворка, но это не дало результатов. В итоге, временным решением стало использование window.location.href , что предотвращало рефреш страницы и помогало сохранить переменные. Однако на этом история не закончилась.

https://habr.com/ru/articles/847586/

#nextjs #nextjs_14 #frontend #react #reactjs #serverside_rendering #app_router #nextruntimeenv

Путешествие по Next.js: от ошибок с not-found до форка next-runtime-env

Недавно столкнулся с интересным багом в Next.js. Если на странице not-found делать навигацию через router.push(pathname) , теряются все переменные окружения, которые мы инициализируем через библиотеку...

Хабр