01Kontekst: dlaczego w ogóle migrować
System, o którym mowa, działa na produkcji od lat: ASP.NET Core MVC, widoki Razor, kilkuset aktywnych użytkowników dziennie. Frontend zestarzał się szybciej niż backend — coraz więcej wymagań dotyczy interaktywności, której Razor z doklejanym jQuery nie udźwignie bez bólu.
Decyzja o migracji do Reacta była łatwa. Trudne było wszystko inne: system nie może stanąć, zespół jest mały, a klient płaci za nowe funkcje, nie za przepisywanie starych.
02Dlaczego nie „big bang"
Przepisanie całości na boku i jednorazowe przełączenie kusi pozorną czystością. W praktyce oznacza miesiące pracy bez dostarczania wartości i jedno gigantyczne wdrożenie, którego nikt nie umie przetestować w całości.
Strangler pattern odwraca logikę: nowy frontend oplata stary moduł po module, przejmując ruch stopniowo — aż w pewnym momencie ze starego nie zostaje nic do uduszenia.
03Czego się nauczyliśmy
- Kryterium przełączenia ustal przed startem — u nas: tydzień pracy nowego modułu na produkcji bez zgłoszeń P1.
- Granica = moduł biznesowy, nie pojedyncza strona.
- Strangler to też strategia komunikacji: klient widzi wartość co sprint.