Code refactoring
Code refactoring
Refactoring is het verbeteren van bestaande code zonder het gedrag te veranderen. Met Claude Code kun je refactors uitvoeren die je handmatig niet zou aandurven.
Wanneer refactoren?
Herken de signalen:
- Duplicatie — Dezelfde logica op meerdere plekken
- Lange bestanden — Bestanden van 500+ regels
- Complexe functies — Functies die te veel doen
- Slechte naamgeving — Variabelen als
x,temp,data2 - Verouderde patronen — Code die niet meer past bij je huidige stack
Analyseer src/utils/helpers.ts. Het bestand is 400
regels lang en doet te veel. Stel een refactoring
plan voor: welke functies horen bij elkaar en in
welke aparte bestanden moeten ze?
Laat Claude eerst een plan maken voor de refactor. Accepteer niet blindelings een grote herstructurering. Bekijk het plan, geef feedback, en laat Claude dan uitvoeren.
Veilig refactoren: de gouden regels
1. Commit eerst
Altijd je huidige werk committen voor je begint:
Commit alle huidige wijzigingen. Daarna gaan we
de user service refactoren.
2. Tests als vangnet
Draai eerst alle tests. Ik wil zeker weten dat
alles groen is voordat we beginnen met refactoren.
Als je geen tests hebt:
Schrijf eerst tests voor de functies in
src/services/user.ts voordat we gaan refactoren.
Test de huidige functionaliteit zodat we na de
refactor kunnen verifiëren dat alles nog werkt.
3. Kleine stappen
In plaats van:
Refactor de hele codebase
Doe:
Refactor alleen de authenticatie module.
Begin met het opsplitsen van auth.ts in aparte
bestanden voor login, register en token management.
De grootste fout bij refactoring: alles tegelijk willen doen. Eén module per keer. Test tussendoor. Commit na elke succesvolle stap.
Veelvoorkomende refactors
Bestand opsplitsen
Split src/api/routes.ts op in aparte bestanden per
resource: users.ts, products.ts, orders.ts.
Update alle imports in het project.
Duplicatie verwijderen
Ik zie dat de error handling in src/api/users.ts en
src/api/products.ts bijna identiek is. Extract dit
naar een gedeelde middleware in src/middleware/errorHandler.ts.
Type verbeteren
Vervang alle 'any' types in src/services/ door
specifieke TypeScript types. Maak interfaces aan
waar nodig.
Naamgeving verbeteren
Hernoem de volgende variabelen en functies in het
hele project voor betere leesbaarheid:
- getData → fetchUserProfile
- proc → processPayment
- x → cartTotal
Grote herstructureringen
Bij een grote refactor:
We migreren van een monoliet naar een gelaagde
architectuur. Het plan:
1. Maak mappen: services/, repositories/, controllers/
2. Verplaats database logica naar repositories/
3. Verplaats business logica naar services/
4. Laat controllers/ alleen HTTP afhandelen
5. Update alle imports
Begin met stap 1 en 2. Doe de rest in een
volgende sessie.
Claude is ideaal voor dit soort mechanische maar foutgevoelige taken. Het mist geen imports en vergeet geen referenties. Maar controleer altijd of de tests nog slagen.
Na de refactor
Altijd dit checken:
De refactor is klaar. Doe nu:
1. Draai alle tests
2. Check of TypeScript geen errors geeft
3. Doe een build om te verifiëren
4. Commit als alles groen is
Wat je nu moet kunnen:
Je kunt nu veilig refactoren met Claude:
- Commit altijd eerst en zorg voor tests als vangnet
- Laat Claude een plan maken voor je accepteert
- Werk in kleine stappen, niet alles tegelijk
- Test en commit na elke succesvolle stap
Kies een bestand in je project dat te lang is en vraag Claude om een refactoring plan te maken.