Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 23, 2026

Refaktorera legacykod säkert

Rickard Andersson Partner, Nodenordic.se

Legacykod bryter förtroende snabbt. Du vill förbättra namn, dela upp en monsterfunktion och lägga till ett test eller två, men du är orolig för att du ska ändra beteende och råka skeppa en subtil produktionsbugg. Så koden får vara kvar som ”fungerar men är läskig”, och varje ny förfrågan kostar mer än den borde.

Den här refactor legacy code-AI-prompten är byggd för mjukvaruingenjörer som tar över en skör modul och behöver säkrare ändringar, tech leads som vill minska risk inför en roadmap-push, och konsulter som måste städa upp kundkod utan att ändra output. Resultatet är en steg-för-steg-refaktorplan med beteendelås, riktade tester och små, reversibla kodändringar som du kan applicera i ordning.

Vad gör den här AI-prompten och när ska du använda den?

Hela AI-prompten: säker, inkrementell refaktor av legacykod

Steg 1: Anpassa prompten med din information
Anpassa prompten

Fyll i fälten nedan för att anpassa prompten efter dina behov.

Variabel Vad du ska ange Anpassa prompten
[PRIMART_MAL] Ange det huvudsakliga mål som refaktoreringen ska uppnå, till exempel förbättrad läsbarhet, minskad komplexitet eller åtgärd av specifika problem.
Till exempel: "Förenkla nästlade loopar och förbättra variabelnamn, samtidigt som befintlig funktionalitet bevaras."
[KOD] Ange den kodsektion som behöver refaktoreras. Ta med alla relevanta rader och se till att den speglar den omfattning du vill få hanterad.
Till exempel: "def calculate_total(items): total = 0 for item in items: total += item.price * item.quantity return total"
[KODENS_SYFTE] Beskriv vad koden är avsedd att göra, inklusive funktion, förväntade indata, utdata och eventuella bieffekter.
Till exempel: "Den här funktionen beräknar totalpriset för varor i en kundvagn genom att multiplicera varans pris med antal och sedan summera resultaten."
[KONTEXT] Ange relevant bakgrundsinformation, till exempel begränsningar, beroenden eller miljön där koden körs.
Till exempel: "Koden är en del av en e-handelsplattform och interagerar med en databas som lagrar artikeluppgifter. Den måste kunna hantera stora datamängder effektivt."
[UTMANING] Beskriv de specifika problem eller svårigheter som finns i den nuvarande koden, till exempel låg läsbarhet, onödig komplexitet eller logik som är svår att underhålla.
Till exempel: "Funktionen använder djupt nästlade loopar och otydliga variabelnamn, vilket gör det svårt för nya utvecklare att förstå eller ändra den på ett säkert sätt."
Steg 2: Kopiera prompten
MÅL
🔒
PERSONA
🔒
BEGRÄNSNINGAR
🔒
Vad detta INTE är
🔒
PROCESS
🔒
INDATA
🔒
OUTPUT-SPECIFIKATION
🔒
1) Uppgiftsförståelse (Föranalys)
🔒
2) Kodanalys
🔒
3) Refaktoreringsroadmap (ordnade steg)
🔒
4) Slutlig refaktorerad kod
🔒
5) Sammanfattning av påverkan
🔒
KVALITETSKONTROLLER
🔒

Proffstips för bättre resultat med AI-prompten

  • Klistra in den minsta läskiga biten. Släpp inte in ett helt repo och hoppas på magi. Börja med en funktion eller en fil plus de direkta beroenden den anropar, och fråga sedan: ”Anta att allt annat förblir som det är; refaktorisera endast inom detta scope och behåll det publika API:t identiskt.”
  • Ge ett beteendeexempel, även om det är fult. Om du kan dela exempel på inputs och outputs, gör det. Följ upp med: ”Här är tre riktiga inputs och deras exakta outputs; föreslå characterization-tester som verifierar dessa resultat före refaktorering.”
  • Be om en föranalys innan kodändringar. Den här prompten är designad för att först återge intent, men du kan göra den ännu striktare. Prova: ”Refaktorisera inte ännu; sammanfatta först vad koden gör, lista invariants som måste bevaras, och identifiera okända saker du behöver svar på.”
  • Iterera med kontrollerade variationer. Efter första planen, välj ett steg och gå djupare: ”Implementera nu endast steg 3 (extract method), men håll diffen under 25 rader och visa före/efter.” Fråga sedan: ”Gör nu alternativ A mer konservativt och alternativ B något mer offensivt, fortfarande med låst beteende.”
  • Kombinera med prompts för UI-tillgänglighet när du refaktoriserar front-end-kod. Om legacykoden är en UI-komponent, refaktorisera för läsbarhet först och validera sedan tillgänglighetsmönster. Till exempel: ”Efter refaktoreringen, kontrollera den här komponenten mot kraven i våra modal/accordion-mönster och föreslå endast icke-brytande förbättringar.”

Vanliga frågor

Vilka roller har mest nytta av den här refactor legacy code-AI-prompten?

Seniora mjukvaruingenjörer använder den här för att refaktorisera riskfylld logik utan att bryta kontrakt, eftersom den tvingar fram ett beteendelås och inkrementella steg. Tech leads förlitar sig på den för att minska ändringsrisk inför deadlines genom att lägga till characterization-tester och en stegvis plan som teamet kan granska. QA-inriktade utvecklare får nytta av testfokuset, särskilt när kraven är otydliga men produktionsbeteendet är känt. Oberoende konsulter använder den när kundkod är rörig och de behöver tydliga, reversibla ändringar som inte överraskar intressenter.

Vilka branscher får mest värde av den här refactor legacy code-AI-prompten?

SaaS-bolag får värde när central logik för fakturering, behörigheter eller notiser har vuxit organiskt och ingen vill röra den. Promptens beteendelås hjälper dem att förbättra läsbarheten samtidigt som edge-case-semantiken förblir stabil. E-handelsvarumärken använder den för checkout-, rabatt- och fraktflöden där små ändringar i output kan påverka intäkter och kundsupport. Fintech- och försäkringsteam har nytta när beräkningskod måste förbli konsekvent av efterlevnadsskäl, och refaktorer behöver testbevis för att visa att inget ändrats. Byråer använder den för att städa upp ärvda kundprojekt snabbt, eftersom små refaktorer med tester är lättare att motivera än en omskrivning.

Varför ger grundläggande AI-prompts för att refaktorisera legacykod svaga resultat?

En typisk prompt som ”Refaktorisera den här koden så att den blir renare” misslyckas eftersom den: saknar ett strikt beteendelås (så outputs och felbeteenden glider), inte ger någon inkrementell plan (så du får en omskrivning du inte kan granska säkert), ignorerar okända saker och edge cases (så modellen fyller luckor med gissningar), producerar ”idiomatiska” ändringar i stället för verifierad ekvivalens, och missar en teststrategi som bevisar att beteendet förblev detsamma. Ärligt talat: ”renare” är inget krav; bevarat beteende är det. Den här prompten sätter begränsningarna först och sedan läsbarheten.

Kan jag anpassa den här refactor legacy code-prompten för min specifika situation?

Ja, men du gör det via kontexten du klistrar in, eftersom prompten i sig inte har några ifyllnadsvariabler. Lägg till dina begränsningar explicit (språk/version, tillåtna beroenden, testramverk, runtime-begränsningar) och inkludera exempel på inputs/outputs eller loggar som representerar nuvarande beteende. Om det finns kända ”måste behållas”-särdrag (som en specifik exception-typ eller exakt JSON-formatering) så säg det direkt. Hjälpsam uppföljning: ”Innan du ändrar, lista beteendeinvarianterna du kommer att bevara, och föreslå sedan en minimal testharness som verifierar dem.”

Vilka är de vanligaste misstagen när man använder den här refactor legacy code-prompten?

Det största misstaget är att klistra in kod utan att visa hur den används — i stället för ”här är en funktion”, lägg till ”här är 3 riktiga anrop och de exakta outputs.” Ett annat vanligt fel är att hoppa över beteendelåset: ”gör den renare” (dåligt) kontra ”bevara outputs, side effects, publika gränssnitt, dataformat och felbeteenden” (bra). Folk klistrar också in bara den läskiga funktionen men utelämnar beroende hjälpfunktioner, vilket leder till påhittade antaganden; inkludera de anropade metoderna eller stubs. Till sist accepterar användare en stor refaktor-diff på en gång; be om ett steg i taget och sätt ett tak som ”håll ändringen under 30 rader.”

Vem ska INTE använda den här refactor legacy code-prompten?

Den här prompten är inte idealisk för team som faktiskt vill ha nytt beteende, större prestandaoptimering eller en ramverksmigrering, eftersom den medvetet undviker genomgripande förändring. Den hjälper heller inte mycket om du inte kan dela någon kod eller några beteendeexempel och du inte vill svara på förtydligande frågor. Och om du bara vill ha en snabb stilgenomgång utan tester kan processen kännas ”för försiktig”. I de fallen: börja med en lättviktig formatter/linter-lösning och kom tillbaka när du är redo att låsa beteende och refaktorisera säkert.

Legacykod behöver inga hjälteinsatser. Den behöver en noggrann sekvens, låst beteende och tester som bevisar att du inte ändrade det som betalar räkningarna. Klistra in din läskiga del i promptvisaren och börja refaktorisera i små steg redan i dag.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal