Feature toggle
Feature toggle (nazywany też flagą funkcji lub feature flag) to mechanizm programistyczny pozwalający włączać i wyłączać wybrane funkcjonalności aplikacji w czasie jej działania, bez konieczności modyfikowania i ponownego wdrażania kodu. Zamiast usuwać niedokończoną funkcję z gałęzi kodu, umieszcza się ją za instrukcją warunkową sterowaną przez flagę. Dzięki temu zespoły mogą wdrażać kod na produkcję często i małymi porcjami, a decyzję o udostępnieniu funkcji użytkownikom podejmować niezależnie od momentu wdrożenia.
Na czym polega feature toggle
Flaga to zwykle wartość przechowywana w konfiguracji, bazie danych lub dedykowanym systemie zarządzania flagami. Kod aplikacji sprawdza jej stan i na tej podstawie decyduje, czy dana ścieżka logiki ma się wykonać. Zmiana wartości flagi natychmiast wpływa na zachowanie aplikacji, bez nowego wdrożenia. To fundament nowoczesnych praktyk CI/CD, w których oddziela się wdrożenie kodu od jego udostępnienia (tzw. decoupling deploy from release).
Rodzaje flag
Wyróżnia się flagi wdrożeniowe (ukrywają niegotowe funkcje), eksperymentalne (do testów A/B), operacyjne (awaryjny kill switch wyłączający obciążające funkcje) oraz uprawnień (dostęp do funkcji dla wybranych planów lub użytkowników). Różnią się cyklem życia i sposobem zarządzania.
Zastosowanie w praktyce
Feature toggle stosuje się do stopniowego wdrażania (canary release), gdzie funkcję najpierw widzi mały procent użytkowników, a następnie zasięg jest zwiększany. Flagi umożliwiają też natychmiastowe wyłączenie problematycznej funkcji bez wycofywania całego wdrożenia oraz udostępnianie wersji beta wybranym klientom. W praktyce zespoły DevOps traktują flagi jako element bezpiecznego, ciągłego dostarczania oprogramowania, który redukuje ryzyko każdego wdrożenia. Flagi umożliwiają też testowanie funkcji bezpośrednio na środowisku produkcyjnym przez wybrane osoby z zespołu, zanim zobaczą ją wszyscy użytkownicy. Trzeba jednak pamiętać, że nadmiar flag komplikuje kod i utrudnia jego testowanie — dlatego dobrą praktyką jest prowadzenie rejestru flag i systematyczne usuwanie tych, które spełniły już swoje zadanie.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się feature toggle od zwykłej opcji w ustawieniach?
Opcja w ustawieniach jest częścią produktu i przeznaczona dla użytkownika końcowego. Feature toggle to narzędzie deweloperskie i operacyjne — służy do sterowania wdrażaniem, testowaniem i awaryjnym wyłączaniem funkcji, często niewidocznie dla użytkownika.
Czy flagi funkcji trzeba usuwać?
Tak, przynajmniej te tymczasowe. Flagi używane do wdrożenia funkcji powinny zostać usunięte po jej pełnym udostępnieniu, aby kod nie zarastał martwymi gałęziami. Flagi trwałe, np. sterujące dostępem do funkcji premium, mogą pozostać na stałe.
