Feature flagging — это практика в разработке программного обеспечения, позволяющая включать или отключать определённые функции (features) приложения без необходимости выкатывать новый код. То есть, нужная логика уже заложена в коде, но управляется «флагом» (переключателем) — функцией можно управлять через конфигурацию, API или панель управления.
Почему так называется?
- Feature = функция, возможность
- Flag = флаг, переключатель, булевое значение (вкл/выкл)
Название происходит от идеи «ставить флажок» около нужной фичи, чтобы разрешить или запретить её использование.
Отличие от feature toggling
На практике feature flagging и feature toggling — это одно и то же. Но иногда может подразумеваться, что:
- Feature toggling – общий подход к управлению функциями через переключатели.
- Feature flagging – более современный термин, часто с фокусом на динамичность и управление через интерфейс.
Как применяется
1. Инкрементальные релизы
- Выкатываете фичу только для 5% пользователей.
- Смотрите, всё ли работает. Затем — для 25%, и т.д.
2. A/B-тестирование
- Через флаг A получают одну версию, через флаг B — другую.
- Сравниваются показатели (конверсии, клики и пр.)
3. Возможность отключить багованную фичу без отката
- Вышло что-то нестабильное? Просто отключаем флаг — пользователи этого больше не видят.
- Не надо спешно делать hotfix и выкатывать релиз.
4. Фичи для определённых групп пользователей
- Внутренние пользователи / бета-тестеры / VIP.
- Пример: включить новую корзину только для сотрудников.
5. Тестирование в проде (testing in production)
- Фича уже задеплоена, но пока выключена для пользователей.
- Можно тестировать, отслеживать логи, постепенно активировать.
Примеры инструментов
- LaunchDarkly
- Split.io
- Unleash
- Flagsmith
- Firebase Remote Config (для мобильных)