Обеспечьте непрерывную доставку и тестирование функций за минуту

Полную статью в блоге Sicara читайте здесь.

Переключатель функций (или флаг функции или переключатель функции) - это концепция добавления флага к функции, чтобы она была разрешена или запрещена пользователю в бэкэнде или во внешнем интерфейсе, например:

  • поменять дисплей спереди
  • отклонить какую-то просьбу в спину
  • и т.п.

В этом посте я расскажу о том, как я реализовал флаги функций для своего приложения NodeJS и как интегрировал его с React. Обратите внимание, однако, что следующее руководство не зависит от вашего внешнего интерфейса.

Его можно использовать по нескольким причинам:

  • тестирование функций: или A / B-тестирование. Когда вы хотите протестировать новую функцию на небольшой части вашей аудитории;
  • непрерывная поставка новых функций: команда разработчиков продолжает разрабатывать новые функции и внедрять код в производственную среду, в то время как флаги позволяют не позволять пользователю видеть текущие разработки;
  • Темный запуск: для тестирования новой функции на небольшой аудитории, получения отзывов пользователей и тестирования производительности.

Как только вы захотите создать такое ветвление функций в своем коде, вы должны быть очень осторожны, чтобы сохранить его как можно более чистым и аккуратным. Флаги функций являются временными (например, тестирование функций), и вам придется их убрать однажды. Это может произойти через несколько дней или несколько недель после их развития. В последнем случае вы хотите точно знать, что и где удалить. К счастью, есть инструменты, которые помогут вам управлять этими операциями.

Обзор инструментов

На сайте featureflags.io представлены некоторые альтернативные инструменты для настройки флагов функций в приложении NodeJS:

  • LaunchDarkly: платная услуга. Множество функций и инструментов, но, вероятно, их будет слишком много, если вы начнете с переключением функций.
  • Flipit: 9 звезд и 2 вилки только на GitHub. По сути, это чтение из конфигурационного файла.
  • Fflip: бесплатно и предлагает также промежуточное ПО Express
  • Unleash: не тестировался, потому что для этого требуется NodeJS ›= 8, в то время как в моем проекте использовалась NodeJS 6. *.

В следующем уроке я буду использовать fflip для переключения функций, потому что он хорошо оценен на GitHub, поддерживается и бесплатен.

… Читайте полную статью в блоге Sicara здесь.