Modernizace a refaktoring
Přebíráme projekty, které běží, ale špatně se mění. Pracujeme po částech, aby aplikace zůstala celou dobu vydatelná.
Přepis od nuly je nejdražší a nejrizikovější varianta: dokud neskončí, produkt se nevyvíjí, a do nové verze se snadno nepřenese chování, které nikdo nezdokumentoval, ale uživatelé ho používají. Postupujeme opačně. Nejdřív kód přečteme a sestavíme z čistého klonu, abychom věděli, co se vlastně sestavuje. Pak doplníme testy kolem míst, kterých se chystáme dotknout.
Teprve potom měníme: po modulech, s možností každou změnu vydat samostatně. Zvyšování verzí závislostí, změna architektury a přepis jazyka jsou tři různé práce a mícháním do jedné se ztrácí možnost zjistit, co rozbilo co. Výsledkem není hotový přepis, ale kódová základna, ve které další změna stojí méně než ta předchozí.
- Co je součástí
- Audit kódu a sestavení z čistého klonu
- Doplnění testů kolem měněných částí
- Zvýšení verzí závislostí a nástrojů
- Postupný převod modulů do současného jazyka
- Rozdělení monolitu na testovatelné části
- Zavedení automatického sestavení
- Co dostanete
- Písemný popis stavu a rizik
- Pořadí prací s odhadem přínosu
- Vydatelná aplikace v každém kroku
- Dokumentace provedených změn
- Co sledujeme
- Doba sestavení projektu
- Pokrytí testy v měněných částech
- Počet zastaralých závislostí
- Doba od změny k vydání
Hodnoty těchto ukazatelů předem neslibujeme — závisí na produktu a jeho uživatelích. Slibujeme, že je budeme měřit a ukazovat.
Časté otázky
Nebude levnější napsat to znovu?
Zpravidla ne. Během přepisu se produkt nevyvíjí a nezdokumentované chování se do nové verze nepřenese. Pokud přepis přesto vychází lépe, řekneme to a vysvětlíme proč.
Co když se u projektu ztratila dokumentace?
To je běžný výchozí stav. Popis vzniká při auditu ze zdrojového kódu, konfigurace a chování aplikace a zůstává vám bez ohledu na to, jak se domluvíme dál.
Poptávka: Modernizace a refaktoring
Napište nám, o co jde. Odpovíme z adresy na této doméně a shrneme písemně, jak jsme zadání pochopili.