Vzor postupného nahrádzania (Strangler Fig Pattern)

Aktualizované Sep 18, 2026

Strangler Fig Pattern je postupný spôsob náhrady legacy systému. Smerovacia hranica posiela vybrané požiadavky alebo pracovné postupy novým komponentom, kým ostatné správanie zostáva v starom systéme. Keď sa funkcie presunú, ich výsledky overia a závislosti odstránia, legacy implementáciu možno bezpečne vyradiť.

Vzor postupného nahrádzania nahrádza legacy systém po častiach. Hranica zachytáva požiadavky, udalosti alebo pracovné postupy a smeruje ich buď do starej implementácie, alebo do nového komponentu. Starý systém naďalej obsluhuje funkcie, ktoré sa ešte nepresunuli. Jeho rozsah sa zmenšuje, keď ich preberá nový systém.

Ako vzor funguje

Vzor potrebuje miesto, na ktorom možno požiadavky rozdeliť. Vo webovej aplikácii to môže byť proxy server alebo brána. Pri internom spracovaní môže ísť o smerovač udalostí, rozhranie služby alebo hranicu pracovného postupu. Pravidlo smerovania musí určiť, ktorá implementácia počas prechodu obsluhuje jednotlivé funkcie.

EtapaStarší systémNový systémSmerovacia hranica
ZaložiťZvláda všetko živé správanieExistuje vedľa nehoPozoruje alebo smeruje požiadavky
MigrovaťZachováva nepresunuté funkcieObsluhuje vybrané funkcieRozdeľuje požiadavky podľa explicitného pravidla
OveriťZostáva k dispozícii tam, kde je to potrebnéStáva sa vlastníkom presunutej funkcionalityPodporuje porovnanie alebo vrátenie späť
VyradiťNemá žiadnu zostávajúcu zodpovednosťZvláda celý zvolený rozsahje zjednodušené alebo odstránené

Etapy sa môžu opakovať pre každú firemnú funkciu. K vyradeniu dôjde až vtedy, keď volajúci, dátové toky, prevádzkové úlohy ani núdzové postupy nebudú závisieť od starej implementácie.

Čo musí audit zistiť ako prvé

Audit legacy codebase identifikuje hranice, ktoré systém dokáže reálne podporovať. Obrazovka ani modul zdrojového kódu nie sú automaticky migračnou jednotkou. Funkcia môže zdieľať databázové tabuľky, plánované úlohy, stav autentifikácie alebo transakčné pravidlá s inými časťami aplikácie.

Audit teda sleduje:

  • Vstupné body. Požiadavky, udalosti, súbory a úlohy, ktoré začínajú toto správanie.
  • Vlastníctvo štátu. Systém, ktorý číta a zapisuje každý relevantný záznam.
  • Efekty po prúde. Hovory, správy, hlásenia a upozornenia vytvorené tokom.
  • Podmienky vyradenia. Závislosti, ktoré musia zmiznúť pred odstránením starého kódu.

Riadenie spolužitia

Počas postupnej migrácie fungujú staré a nové komponenty súčasne. Izolačná vrstva medzi systémami môže prekladať ich dátové modely a terminológiu, ak by priame prepojenie prenieslo staré predpoklady do nového návrhu. Refaktoring môže vytvoriť stabilný smerovací bod tam, kde predtým neexistoval.

Súbežná prevádzka prináša ďalšiu prácu. Monitoring musí ukázať, ktorá cesta spracovala požiadavku. Synchronizácia údajov potrebuje jednoznačný smer aj vlastníka. Pri zlyhaní musí byť jasné, či sa požiadavka vráti na starú cestu, zastaví alebo zopakuje. Tieto pravidlá patria do návrhu prechodnej architektúry, nie medzi detaily riešené až po nasadení.

Ako formuje migračný plán

Vzor mení jeden veľký projekt náhrady na sériu presunov funkcií. Každý presun má definovaný vstupný bod, rozsah údajov, metódu overenia a podmienku dokončenia. Pokrok je tak viditeľný podľa zodpovedností odstránených zo starého systému.

Vzor neodstraňuje potrebu porozumieť codebase. Od tohto poznania závisí výber hraníc, ktoré môžu fungovať súčasne a neskôr sa oddeliť. Hodnota takéhoto plánovania migrácie legacy systému spočíva v tom, že každá dokončená fáza môže bežať v produkcii ešte pred presunom ďalšej časti. Konečným cieľom zostáva odstránenie zastaraného kódu a závislostí.