Флаги функциональности — обязательный инструмент непрерывной поставки. Без них каждый релиз остаётся событием с высоким риском: выкатили — и обратной дороги нет, кроме срочного отката всей сборки.
Типы флагов
- Релизные — постепенная раскатка новой функции на растущую долю пользователей.
- Экспериментальные — A/B-тесты и проверка гипотез.
- Разрешающие — доступ к возможностям платных тарифов.
- Аварийные — выключатель на случай сбоя или резкого роста нагрузки.
- SaaS или веб-продукт с непрерывной поставкой
- Частые релизы
- Мобильное приложение: обновление проходит проверку в магазине приложений, поэтому пользы от флагов меньше
Запуск новой функции: сначала её видят только сотрудники — около 1% аудитории, затем 5% пользователей, потом 25%, 50% и 100%. Если на 25% метрики проседают, функцию выключают одним переключателем — без отката кода и без срочного релиза.
Не оставляйте флаги в коде навсегда. Как только функция раскатана на всех, флаг нужно удалить: копящиеся переключатели превращают код в лабиринт условий, который никто не решается трогать. Заводите на удаление флага отдельную задачу в Shtab сразу при его создании и ставьте ей срок.