Что такое feature flag?

Junior
1.3k просмотров
AFK Offer AI

Feature flag — переключатель, который позволяет включать и выключать функциональность без деплоя. Хранится в конфиге, БД или специальном сервисе (LaunchDarkly, Unleash).

func handleSearch(w http.ResponseWriter, r *http.Request) {
    results := search(r.Context(), query)

if featureFlags.IsEnabled("new_ranking", r.Context()) { results = newRankingAlgorithm(results) }

json.NewEncoder(w).Encode(results) }

Зачем: выкатываешь фичу на 5% пользователей, смотришь метрики, расширяешь на всех. Если что-то пошло не так — выключаешь флаг, а не откатываешь деплой. Это основа trunk-based development: код мёржится в main сразу, но скрыт за флагом. Не забывай удалять старые флаги — со временем они превращаются в мусор и усложняют код.

Следующий вопрос

Почему встраивание (embedding) это не наследование?