Home / Blog / Achtergronden / Rebuild of refactor software?
Wat is beter: software herbouwen of refactoren? De meningen verschillen en het is ook afhankelijk van het project. En wat de klant verstaat onder herbouw en wat de engineer verstaat onder herbouw wil ook nog wel eens wezenlijk verschillen. Het is dus zaak om de verwachtingen vooraf goed duidelijk te krijgen. Voordat we deze discussie aangaan is het daarom ook goed een definitie te stellen voor rebuilding en refactoring:
Wat is rebuilding? Bij rebuilding herschrijf je de gehele applicatie. In vergelijking met een woningrenovatie: je sloopt het hele huis en bouwt een nieuw huis vanaf het eerste begin.
Wat is refactoring? Bij refactoring maak je belangrijke wijzigingen aan de applicatie maar je herschrijft niet alle code. In vergelijking met een woningrenovatie: je stript wat en knapt het huis op maar het geraamte blijft sowieso staan.
Naast een duidelijke definitie voor beide begrippen, is er ook een aantal andere factoren om rekening mee te houden:
Een persoonlijke website die je gebruikt als portfolio versus een applicatie waar duizenden mensen van afhankelijk zijn, zorgt voor de nodige verschillen in de keus voor rebuilding of refactoring. In het eerste geval van een verouderde website met een puinhoop aan code, een gruwelijk design en met zeer weinig gebruikers, kun je die herbouwen. Dat maakt hem weer lekker fris en geeft een nieuwe start. In het tweede geval staat er meer op het spel. Zeker als je applicatie essentieel is voor de bedrijfsvoering en misschien wel verantwoordelijk voor een groot deel van de omzet. Voorzichtigheid is dan geboden en refactoring kan in dat geval een betere, minder risicovolle optie zijn.
Bij het migreren van een applicatie naar een nieuwe technologie kan er gekozen worden voor rebuilding waar from scratch vanuit een nieuwe technologie wordt gebouwd. Soms zijn er in bedrijven nog applicaties draaiende waarvan niemand meer diepgaande kennis heeft. Het komt zelfs voor dat er überhaupt geen kennis meer is over de programmeertaal waarin de applicatie ooit geschreven is. Afhankelijk van het doel van de applicatie kan dat een probleem vormen voor de veiligheid en continuïteit. Die klanten spreken vaak de wens uit om te moderniseren en de gehele applicatie in een actuele taal te programmeren. Dan komt rebuilding om de hoek kijken.
De keuze tussen refactoring en rebuilding is dus niet zo evident. Het prettigste zou zijn als je beide kunt vermijden. Er zijn tools beschikbaar om je daarbij te helpen, zoals Code Climate. Wat adviseer jij in welk geval en waarom? En wat heeft je persoonlijke voorkeur?
Senet Eindhoven Gestelsestraat 258 5654 AM Eindhoven Bekijk op kaart
+31(0)40-2930395
KvK nummer: 17115078 Btw nummer: NL807989083B01