Spaghetticode
Spaghetticode of kortweg spaghetti is een minachtende 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 ("dependencies").

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 vereist, die op hun beurt weer andere wijzigingen vereisen, et cetera. 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 jargon).

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).
Q68
computer
Concept
Q128751
broncode
Concept
Q868299
structuur
Concept
Q750997
GOTO
Concept
Q8556
Edsger Dijkstra
PER
Q1047561
Spaghetticode
Concept
Q1047561
Spaghetticode
Concept
1968-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1968
DATE
1968-03-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
maart 1968
DATE
+11^^http://www.w3.org/2001/XMLSchema#decimal
11
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+148^^http://www.w3.org/2001/XMLSchema#decimal
148
NUMBER
subclass of