Рубрики
Uncategorized

Рендеринг на стороне сервера и управление функциями флагов

При выполнении SSR вы хотите, чтобы наибольшее количество вашего кода было поделиться между сервером и клиентом. Tagged SSR, DevOps, программирование, мониторинг.

CloudBees Dellout предлагает JavaScript SDK в течение многих лет. С одной стороны, rox-node можно использовать на стороне сервера, а с другой — Rox-Browser Есть ли для клиентских флагов функций в браузере. Хотя это охватывает многие варианты использования, предел между сервером и клиентом становится нечетким.

Приложения React больше не являются одностраничными приложениями, работающими только в браузере. Все заботятся о SEO, и рендеринг на стороне сервера (SSR) становится стандартом. И если вы используете флаги функций, чтобы показать или скрыть некоторые функции или данные, SSR также имеет смысл с точки зрения безопасности: не отправляйте в данные браузера, которые он не должен получить!

При выполнении SSR вы хотите, чтобы наибольшее количество вашего кода было поделиться между сервером и клиентом. Очевидно, что наличие двух отдельных SDK делает это трудным. Мы рады представить Rox-SSR SDK для развертывания CloudBees, который упростит вашу логику. Просто используйте Rox-SSR, и он сделает все для вас магию (см. Ниже). А поскольку ROX-SSR записана в TypeScript, вы автоматически получаете все определения типографии, позволяя вам изучить API Dillout CloudBees еще быстрее и оставаться защищенным типом.

С точки зрения разработчика, используется только ROX-SSR. На заднем плане ROX-SSR автоматически переключается между Rox-Node и Rox-Browser в зависимости от среды. Мы знаем, что разработчики заботятся о размере своих приложений, поэтому мы имели в виду это, так что код, специфичный для сервера, не связан с вашим конечным клиентским пакетом. Мы успешно проверили это с помощью WebPack!

Мы также знаем, что разработчики заботятся не только о внешнем виде, но и о производительности. Развертывание CloudBees не получает значения флагов с своих серверов на каждой оценке, но вместо этого приносит конфигурацию флага один раз, а затем использует его для оценки флагов. Calling flag.iseNabled ()-локальная, постоянная операция.

Это всегда было правдой, Rox-SSR делает это еще лучше.

На стороне сервера ROX-SSR принесет эту конфигурацию и регулярно обновляет ее. Rox-SSR позволяет напрямую передавать эту конфигурацию в браузер, сделав инициализацию развертывания на стороне клиента непосредственной: никакой задержки из-за получения данных с сервера развертывания CloudBees и потенциально не раздражающего повторного потока элементов на странице из-за Конфигурация флага получена в несколько миллисекунд слишком поздно. Смотрите этот пример ниже.

  1. Зарегистрируйтесь и создайте свое новое приложение в roplout.io
  2. Инициализировать развертывание CloudBees-это должно быть один раз на стороне сервера, один раз на стороне клиента
import {Flag, Rox} from 'rox-ssr'

export const featureFlags = {
 myFirstFlag: new Flag(true),
 mySecondFlag: new Flag(false),
}

Rox.register('myTestNamespace', featureFlags)

await Rox.setup()
  1. В вашем render () Метод, сторона сервера, добавить <Скрипт> В пределах Теги для отправки конфигурации развертывания с сервера на клиенты:
import {Rox} from 'rox-ssr'

// ...

4) Использование флагов

featureFlags.myFirstFlag.isEnabled()

У вас могло быть что -то вроде:

let Rox = null
if (process.browser) {
 Rox = require('rox-browser')
} else {
 Rox = require('rox-node')
}

Замените его:

import {Rox} from 'rox-ssr'

Существует небольшое изменение для применения при объявлении нового флага/конфигурации/варианта.

До:

const Rox = require('rox-browser')
export const container = {
 flag1: new Rox.Flag(true),
 configuration1: new Rox.Configuration(''),
 variant1: new Rox.Variant('', [])
}

После:

import {Flag, Configuration, Variant} from 'rox-ssr'

export const container = {
 flag1: new Flag(true),
 configuration1: new Configuration(''),
 variant1: new Variant('', [])
}

Добавить (или обновить) способ отправки данных конфигурации клиентам:

import {Rox} from 'rox-ssr'

// ...

Хотите попробовать развертывание CloudBees? Проверьте 14 -дневная бесплатная пробная версия Анкет

Оригинал: «https://dev.to/cloudbees/server-side-rendering-and-feature-flag-management-59he»