Přepínač funkcí - Feature toggle
Funkce přepínání (také funkce switch , funkce příznak , rys brána , funkce ploutev , podmíněná funkce , atd.) Je technika, při vývoji softwaru , který pokusy poskytnout alternativu k udržování více poboček ve zdrojovém kódu (známý jako hraných poboček), jako že softwarovou funkci lze testovat ještě předtím, než je dokončena a připravena k vydání . Přepínač funkcí se používá ke skrytí, povolení nebo zakázání funkce během běhu . Například během procesu vývoje může vývojář povolit funkci pro testování a zakázat ji pro ostatní uživatele.
Průběžné vydávání a nepřetržité nasazení poskytuje vývojářům rychlou zpětnou vazbu ohledně jejich kódu. To vyžaduje integraci jejich změn kódu co nejdříve. Větve funkcí zavádějí do tohoto procesu bypass. Přepínače funkcí jsou důležitou technikou pro nepřetržité doručování .
Tato technika umožňuje vývojářům vydat verzi produktu, který má nedokončené funkce. Tyto nedokončené funkce jsou skryté (přepínatelné), aby se nezobrazovaly v uživatelském rozhraní . To umožňuje dodávat mnoho malých přírůstkových verzí softwaru bez nákladů na neustálé větvení a slučování . Přepínače funkcí mohou umožnit kratší cykly integrace softwaru. Tým pracující na projektu může pomocí přepínačů funkcí urychlit proces vývoje, což může zahrnovat i neúplný kód.
Implementace
Přepínače funkcí jsou v podstatě proměnné, které se používají uvnitř podmíněných příkazů . Proto blokuje uvnitř těchto podmíněné příkazy lze zapnout ‚nebo vypnout‘ v závislosti na hodnotě hraného přepínat. To umožňuje vývojářům řídit tok jejich softwaru a obejít funkce, které nejsou připraveny k nasazení. Blok kódu za proměnnou runtime je obvykle stále přítomen a může být podmíněně spuštěn, někdy v rámci stejného životního cyklu aplikace; blok kódu za direktivou preprocesoru nebo okomentovaný by nebyl spustitelný. Přístup příznaku funkce by mohl použít některou z těchto metod k oddělení cest kódu v různých fázích vývoje.
Hlavním využitím přepínačů funkcí je zamezení konfliktu, který může nastat při sloučení změn v softwaru na poslední chvíli před vydáním, i když to může vést k přepnutí dluhu . Přepínací dluh vzniká v důsledku mrtvého kódu přítomného v softwaru poté, co byla funkce trvale zapnuta a vytváří režijní náklady. Tato část kódu musí být odstraněna opatrně, aby nerušila ostatní části kódu.
Existují dva hlavní typy přepínání funkcí. Jedním z nich je přepínač vydání, který vývojář rozhodne buď ponechat, nebo odebrat před vydáním produktu v závislosti na jeho fungování. Druhý je obchodní přepínač, který je zachován, protože splňuje jiné použití ve srovnání se starším kódem.
Přepínače funkcí lze použít v následujících scénářích:
- Přidání nové funkce do aplikace.
- Vylepšení stávající funkce v aplikaci.
- Skrytí nebo zakázání funkce.
- Rozšíření rozhraní.
Přepínače funkcí lze uložit jako:
- Řádkové položky v databázi.
- Vlastnost v konfiguračním souboru.
- Záznam ve službě příznaku externí funkce.
Skupiny funkcí
Skupiny funkcí se skládají z přepínačů funkcí, které fungují společně. To umožňuje vývojáři snadno spravovat sadu souvisejících přepínačů.
Kanárské propuštění
Kanárské vydání (nebo kanárské spuštění nebo nasazení kanárů) umožňuje vývojářům mít funkce postupně testované malou sadou uživatelů. Příznaky funkcí poskytují alternativní způsob spouštění kanárů a umožňují cílení podle geografických poloh nebo dokonce podle uživatelských atributů. Pokud výkon funkce není uspokojivý, lze ji vrátit zpět bez jakýchkoli nežádoucích účinků.
Martin Fowler uvádí, že přepínač funkcí „by měl být vaší poslední volbou, když máte co do činění s uváděním funkcí do výroby“. Místo toho je nejlepší rozdělit funkci na menší části, z nichž každou lze implementovat a bezpečně zavést do uvolněného produktu, aniž by to způsobilo další problémy.
Přepínání funkcí používá mnoho velkých webů, včetně Flickr, Disqus, Etsy, reddit, Gmail a Netflix, a také software, jako je Google Chrome Canary .
Viz také
- Správa konfigurace softwaru
- Softwarová produktová řada
- Porovnání softwaru pro správu konfigurace s otevřeným zdrojovým kódem