Spaghetticode
Aan dit artikel of deze sectie wordt de komende uren of dagen nog druk gewerkt.
Klik op geschiedenis voor de laatste ontwikkelingen.
Zie voor meer informatie: Waarom staat mijn artikel op de beoordelingslijst. Voel je vrij het artikel te bewerken.
Haal de pagina echter niet leeg en verwijder deze boodschap niet voordat de discussie gesloten is.
Spaghetticode of kortweg "Spaghetti" is een pejoratieve term die door computerprogrammeurs wordt gebruikt om broncode aan te duiden met een overdreven complexe, (bijna) onontwarbare structuur, zodat bijna niet na te gaan is welke delen van het programma wanneer zullen worden uitgevoerd en welke delen van welke andere delen afhankelijk zijn (dependecies).
Wijzigingen zijn daarom moeilijk door te voeren, omdat nooit duidelijk is wat de effecten van een wijziging zullen zijn of omdat een kleine wijziging op de ene plaats wijzigingen op andere plaatsen vereisen, die op hun beurt weer andere wijzigingen vereisen, etcetera ad nauseam. Men spreekt in zo'n geval van een maintenance cascade. Spaghetticode is veelal een gevolg van gebrek aan planning of een accumulatie van kortetermijnoplossingen (een kludge in vakjargon).
In veel spaghetticode wordt veelvuldig gebruikgemaakt van de GOTO-opdracht, een sprong binnen het programma waardoor een opdracht opnieuw wordt uitgevoerd of juist wordt vermeden. Dergelijke sprongen maken het programma onoverzichtelijk. Edsger Dijkstra waarschuwde in 1968 tegen het gebruik van de GOTO-opdracht in zijn artikel ‘Go To Statement Considered Harmful’ (Communications of the ACM 11 (3) (maart 1968), blz. 147–148).