Обеспечьте непрерывную доставку и тестирование функций за минуту
Полную статью в блоге Sicara читайте здесь.
Переключатель функций (или флаг функции или переключатель функции) - это концепция добавления флага к функции, чтобы она была разрешена или запрещена пользователю в бэкэнде или во внешнем интерфейсе, например:
- поменять дисплей спереди
- отклонить какую-то просьбу в спину
- и т.п.
В этом посте я расскажу о том, как я реализовал флаги функций для своего приложения NodeJS и как интегрировал его с React. Обратите внимание, однако, что следующее руководство не зависит от вашего внешнего интерфейса.
Его можно использовать по нескольким причинам:
- тестирование функций: или A / B-тестирование. Когда вы хотите протестировать новую функцию на небольшой части вашей аудитории;
- непрерывная поставка новых функций: команда разработчиков продолжает разрабатывать новые функции и внедрять код в производственную среду, в то время как флаги позволяют не позволять пользователю видеть текущие разработки;
- Темный запуск: для тестирования новой функции на небольшой аудитории, получения отзывов пользователей и тестирования производительности.
Как только вы захотите создать такое ветвление функций в своем коде, вы должны быть очень осторожны, чтобы сохранить его как можно более чистым и аккуратным. Флаги функций являются временными (например, тестирование функций), и вам придется их убрать однажды. Это может произойти через несколько дней или несколько недель после их развития. В последнем случае вы хотите точно знать, что и где удалить. К счастью, есть инструменты, которые помогут вам управлять этими операциями.
Обзор инструментов
На сайте featureflags.io представлены некоторые альтернативные инструменты для настройки флагов функций в приложении NodeJS:
- LaunchDarkly: платная услуга. Множество функций и инструментов, но, вероятно, их будет слишком много, если вы начнете с переключением функций.
- Flipit: 9 звезд и 2 вилки только на GitHub. По сути, это чтение из конфигурационного файла.
- Fflip: бесплатно и предлагает также промежуточное ПО Express
- Unleash: не тестировался, потому что для этого требуется NodeJS ›= 8, в то время как в моем проекте использовалась NodeJS 6. *.
В следующем уроке я буду использовать fflip для переключения функций, потому что он хорошо оценен на GitHub, поддерживается и бесплатен.
… Читайте полную статью в блоге Sicara здесь.