Блог SkillsCup.com

Feature flagging/toggling — вкл./выкл. функций

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)

  • Фича уже задеплоена, но пока выключена для пользователей.
  • Можно тестировать, отслеживать логи, постепенно активировать.

Примеры инструментов

  • LaunchDarkly
  • Split.io
  • Unleash
  • Flagsmith
  • Firebase Remote Config (для мобильных)
2025-04-20 23:43 Продукт