Slovník
Zrozumiteľné vysvetlenia pojmov, ktoré sa objavia pri audite legacy kódu a plánovaní odchodu z neho.
Audit legacy kódu- Cyklomatická zložitosť (cyclomatic complexity)Read Cyklomatická zložitosť (cyclomatic complexity)
Metrika založená na počte nezávislých ciest cez jednotku kódu. Pri audite legacy systému pomáha nájsť logiku, ktorú môže byť ťažké pochopiť, otestovať a bezpečne zmeniť.
- Graf závislostí (dependency graph)Read Graf závislostí (dependency graph)
Mapa vzťahov medzi modulmi, službami, knižnicami a dátovými úložiskami v softvérovom systéme. Auditu legacy codebase pomáha odhaliť, čoho sa navrhovaná zmena môže dotknúť.
- Hotspot v kóde (code hotspot)Read Hotspot v kóde (code hotspot)
Časť codebase, ktorá sa mení často a zároveň nesie výraznú zložitosť alebo riziko chýb. Analýza hotspotov pomáha auditu sústrediť pozornosť tam, kde sa stretáva tlak na údržbu s náročným kódom.
- Izolačná vrstva medzi systémami (Anti-Corruption Layer)Read Izolačná vrstva medzi systémami (Anti-Corruption Layer)
Vrstva, ktorá oddeľuje nový komponent od dátového modelu, terminológie a rozhraní legacy systému. Počas migrácie prekladá komunikáciu medzi oboma systémami.
- Pokrytie testami (test coverage)Read Pokrytie testami (test coverage)
Dôkaz o tom, ktoré časti legacy codebase sa vykonajú počas automatizovaných testov. Migračnému tímu pomáha nájsť chránené správanie aj oblasti, kde si zmeny vyžadujú ďalšie overenie.
- Postupná výmena cez spoločné rozhranie (Branch by Abstraction)Read Postupná výmena cez spoločné rozhranie (Branch by Abstraction)
Technika, pri ktorej sa starý komponent nahrádza za spoločným rozhraním a obe implementácie dočasne fungujú súčasne. Rozsiahlu zmenu legacy systému tak možno rozdeliť na malé kroky v hlavnej vývojovej vetve.
- Previazanosť kódu (code coupling)Read Previazanosť kódu (code coupling)
Miera, do akej jednotlivé časti softvérového systému závisia od implementácie alebo správania tých ostatných. Silná previazanosť dokáže rozšíriť aj lokálnu zmenu naprieč celou legacy codebase.
- Refaktoring (refactoring)Read Refaktoring (refactoring)
Disciplinovaná zmena vnútornej štruktúry existujúceho kódu bez zmeny jeho pozorovateľného správania. V legacy codebase refaktoring uľahčuje pochopenie, testovanie a úpravu vybraných oblastí.
- Technický dlh (technical debt)Read Technický dlh (technical debt)
Nahromadená cena za skratky z minulosti v zdrojovom kóde (codebase). V legacy systémoch je to tá najdôležitejšia vec, ktorú musí audit pred refaktorovaním zmerať.
- Test aktuálneho správania (characterization test)Read Test aktuálneho správania (characterization test)
Automatizovaný test, ktorý zachytáva súčasné správanie existujúceho softvéru. Pri refaktoringu legacy systému vytvára porovnávací základ bez predpokladu, že každý pozorovaný výsledok je správny alebo žiaduci.
- Vzor postupného nahrádzania (Strangler Fig Pattern)Read Vzor postupného nahrádzania (Strangler Fig Pattern)
Vzor postupnej migrácie, ktorý presúva vybrané funkcie z legacy systému do nových komponentov, až kým možno starú implementáciu vyradiť. Predchádza výmene celého systému v jedinom nasadení.
Audit legacy kódu
Celý obraz o audite legacy kódu a migrácii preč z neho.