/
Testy

Feature flagy / zapínání a vypínání funkcí

11. 12. 2022

Obsah článku

Při vývoji složitější aplikace oceníte možnost vyvinout více funkcí dopředu, ty distribuovat společně s další verzí vašeho software, a funkci povolit až později.

Přesně pro tento účel vznikly tzv. feature flagy. Tento článek ukáže možnosti jejich použití.

Základní implementace

Feature flagy jsou v podstatě velmi jednoduchý koncept volání jedné funkce/metody, která rozhodne, jestli je nová feature aktivní.

Například:

echo '<h1>Aplikace o počasí</h1>';
echo 'Dnes je: ' . getWeather();
if (feature('map')) {
echo 'Mapa: ' . getMap();
}

Pro ověření dostupnosti konkrétní novinky se provolává funkce feature(), která podle volacího názvu rozhodne, jestli může konkrétní funkci povolit nebo ignorovat.

Implementace rozhodovací logiky

Rozhodovací logika bývá často složitější. Například můžete konkrétní funkci spustit až od konkrétního data, nebo pro uživatele z určité skupiny. Často takto například testuji nasazení nové funkce třeba na 5 % uživatelů, aby to neovlivnilo všechny najednou.

Při vývoji firemního sotfware takto například spouštíme reklamní kampaně a slevy, které platí od určitého dne.

Pokud se konkrétní novinka rozbije, je možné ji jednoduše feature flagem pro uživatele vypnout, a povolit například jen pro skupinu vývojářů, kteři ji otestují a přinesou opravu.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
2.

Potřebujete poradit s PHP?

Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.

Napište mi, pokud si nevíte rady.

Lektor: Jan Barášek