System Design Space
Граф знанийНастройки

Обновлено: 1 апреля 2026 г. в 09:00

Rendering-модели frontend: SPA, SSR, SSG, streaming и hydration

средний

Как выбирать rendering-стратегию под SEO, latency, edge-кэширование и продуктовые ограничения: SPA, SSR, SSG, streaming, islands и hydration trade-offs.

Выбор между SPA, SSR, SSG, streaming и hybrid rendering редко бывает purely technical. На самом деле это решение о том, где платить за скорость первого экрана, как работать с SEO, насколько сложным становится deployment contour и кто отвечает за hydration-проблемы в production.

Эта глава полезна тем, что превращает спор о rendering-модели в набор измеримых trade-offs: TTFB, LCP, кэшируемость HTML, цена персонализации и сложность диагностики. Так разговор о рендеринге перестает быть спором религий и становится архитектурным выбором под конкретный продукт.

Для интервью и review это важный материал, потому что именно rendering strategy соединяет frontend с edge, CDN, backend composition и ограничениями browser runtime в одной точке принятия решений.

Практическая польза главы

Практика проектирования

Переводите знания о выборе rendering-модели и компромиссах между SEO, latency и operational complexity в конкретные решения по composition, владению (ownership) и runtime-поведению клиентской системы.

Качество решений

Оценивайте архитектуру по измеримым эффектам: скорость delivery, стабильность UI, наблюдаемость, цена изменений и эксплуатационные риски.

Аргументация на интервью

Стройте ответ как цепочку problem -> constraints -> architecture -> компромиссы (trade-offs) -> migration path, с явной аргументацией frontend-выбора.

Формулировка компромиссов

Фиксируйте компромиссы вокруг выборе rendering-модели и компромиссах между SEO, latency и operational complexity: масштаб команды, технический долг, performance budget и долгосрочная поддержка.

Контекст

Производительность frontend-платформы

Rendering model влияет на perceived performance раньше, чем большинство локальных UI-оптимизаций.

Читать обзор

Rendering strategy определяет, где именно возникает первый полезный пиксель: на сервере, на edge или только после загрузки client runtime. Поэтому спор между SPA, SSR и hybrid режимами по сути является разговором о latency budget, SEO и цене поддержки платформы.

Правильный вопрос звучит не как «какой режим лучше», а как «для каких route classes какой режим стоит своих trade-offs».

Основные rendering-модели

SPA

Минимальная server complexity и гибкий client runtime.

Когда подходит

Внутренние продукты, rich interactions, auth-first сценарии, где SEO не является критическим драйвером.

Цена

Нужно отдельно бороться за first render, bundle size и восстановление состояния после refresh.

SSR / streaming SSR

Лучше контролирует first paint и initial HTML для поисковиков и share previews.

Когда подходит

Маркетплейсы, content-heavy страницы, mixed public/private routes, где важны SEO и быстрый first meaningful view.

Цена

Вырастает сложность server runtime, cache invalidation, hydration debugging и персонализации.

SSG / ISR-style revalidation

Максимально выгодно использует CDN и дешево масштабируется для mostly-static контента.

Когда подходит

Документация, knowledge bases, marketing pages, catalog pages с предсказуемой частотой обновлений.

Цена

Сложнее объяснять freshness policy и делать fine-grained personalization без дополнительных серверных контуров.

Hybrid / islands / partial hydration

Пытается отдать HTML быстро и гидрировать только интерактивные зоны.

Когда подходит

Контентные страницы с отдельными интерактивными блоками и жесткими performance budgets.

Цена

Повышает сложность mental model, tooling и диагностики client/server boundary issues.

Сигналы для выбора

  • Насколько страница должна работать анонимно до логина и до загрузки тяжелого client runtime.
  • Есть ли SEO/social preview давление и как часто контент реально меняется.
  • Можно ли кэшировать HTML на edge или в ответе слишком много персонализации.
  • Готова ли команда поддерживать server runtime, hydration diagnostics и hybrid routing.

Связано

Content Delivery Network (CDN)

HTML cache, stale-while-revalidate и invalidation path часто определяют реальную цену SSR/SSG сильнее, чем сам фреймворк.

Открыть главу

Архитектурные правила

Rendering strategy выбирается на уровне route class, а не всего продукта

Public landing, search page, checkout и authenticated dashboard почти всегда живут под разными constraints. Один глобальный режим рендеринга редко оптимален для всего приложения.

Hydration - это отдельный operational risk

Mismatch между server HTML и client tree обычно проявляется только в production-сценариях: timezone, locale, feature flags, AB tests и late data arrival.

Персонализация ломает дешевый HTML cache первой

Чем раньше в ответ вплетаются user-specific widgets, тем сложнее использовать CDN эффективно. Иногда выгоднее отдавать общий shell и донаполнять personalization после paint.

Edge и CDN - часть rendering architecture

TTFB, cache key design, prefetch policy и invalidation path должны обсуждаться вместе с frontend rendering model, а не после выбора фреймворка.

Практический вывод

В зрелом продукте rendering strategy обычно гибридная: public routes оптимизируются под SEO и edge-cache, а тяжелые authenticated flows проектируются вокруг client runtime, route-level prefetch и контролируемой hydration complexity.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки