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