Фича-флаги на максималках

Фича-флаги (feature flags) — это инструмент, который позволяет безопасно и управляемо внедрять новые фичи. С их помощью можно:

✔️ Запускать фичи на ограниченной аудитории: Например, тестировать новую функциональность на 5-10% пользователей, чтобы проверить её стабильность. ✔️ Постепенно расширять охват: Увеличивать количество пользователей, видящих новую фичу, без стресса для команды. ✔️ Управлять доступом по сегментам: Включать функционал только для бета-тестеров, премиум-аккаунтов или других категорий.

🛠️ Фича-флаги и Base Trunk Development

Фича-флаги идеально работают в связке с подходом Base Trunk Development (разработка в основной ветке репозитория). Этот метод позволяет:

✔️Деплоить "сырой" код в основную ветку без риска — фича остаётся выключенной до готовности. ✔️Избежать конфликтов между ветками, так как все изменения сосредоточены в основной ветке. ✔️Быстро итеративно дорабатывать фичи, активируя их только тогда, когда они полностью готовы.

Пример: if (featureFlags.enableDarkMode) { renderDarkMode(); } else { renderLightMode(); } В данном случае флаг enableDarkMode позволяет переключать тему интерфейса, не требуя дополнительных деплоев.

А если флаги — это не только для релизов? Фича-флаги часто рассматриваются как временный инструмент, но что, если их использовать для постоянного управления функционалом? Например:

✔️Разделение функционала между тарифами (базовый, премиум, корпоративный). ✔️Динамическая настройка доступов для разных групп пользователей.

Это добавляет новые вызовы: ❓Как проектировать архитектуру, чтобы избежать путаницы в коде? ❓Как эффективно управлять большим количеством флагов?

🎥 О том, как нам удалось внедрить это в Sendsay и сделать понятную архитектуру, рассказал наш техлид Артем Герус на MoscowJS в Т-банке: https://www.youtube.com/live/XIHCtCwF0hk?t=558s (начало 9:20)

Фича-флаги на максималках | Сетка — социальная сеть от hh.ru