Teknisk gæld og refaktorering
It A · STX · A-niveau · Systemudvikling og DevOps
💻 Teknisk gæld og refaktorering
Teknisk gæld (Ward Cunningham 1992) = metafor for kortsigtede kode-løsninger der skaber ekstra arbejde senere. Som finansiel gæld: kort-sigt fordel, men "renter" (vedligeholdelse) akkumulerer.
Typer af teknisk gæld:
1.
Bevidst og uundgåelig: vi VED at koden er suboptimal men har ikke tid nu.
2.
Ubevidst: vi tror det er godt nok.
3.
Strategisk: bygget til hurtig MVP.
4.
Akkumuleret: gammel kode der ikke er opdateret.
Symptomer på teknisk gæld: bugs der genopstår efter "fix", små ændringer kræver store omskrivninger, nye udviklere kæmper med onboarding, performance-problemer, mistillid til kodebase, "magisk" kode (fungerer men ingen ved hvorfor).
Refaktorering (Martin Fowler 1999): forbedring af kodens INTERNE struktur uden at ændre dens EKSTERNE adfærd. Kerne-bog: Refactoring: Improving the Design of Existing Code.
Refactoring-mønstre: extract method (lange funktioner brydes op), rename variable (klare navne), replace conditional with polymorphism, introduce parameter object.
DRY-princippet (Don't Repeat Yourself): kopier-paste-kode er teknisk gæld.
YAGNI-princippet (You Ain't Gonna Need It): byg ikke hvad du ikke har brug for.
SOLID-principperne (Robert C. Martin / Uncle Bob): Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
Code smells: tegn på dårlig kode. Lange metoder, store klasser, dubleret kode, mange parametre, "feature envy". Clean Code (Robert Martin 20
Læringsmål
- Redegøre for begrebet teknisk gæld
- Identificere teknisk gæld i et stykke kode
- Refaktorere kode for at reducere teknisk gæld
Sådan kan du arbejde med emnet
- Beskriv, hvad teknisk gæld er, og giv et konkret eksempel fra en kodebase
- Refaktorér en funktion med lange betingede udtryk til en mere læselig form og beskriv, hvad du ændrede
- Diskutér, hvornår det er rigtigt at betale teknisk gæld, og hvornår det er bedre at ignorere den
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis