WikiDer > Spaghetti-Code

Spaghetticode

Spaghetti-Code oder kurz Spaghetti ist ein verächtlicher Begriff von Computerprogrammierer wird verwendet für Quellcode durch ein zu komplexes, (fast) untrennbares . angezeigt werden Struktur, so dass es fast unmöglich ist zu bestimmen, welche Teile des Programms wann ausgeführt werden und welche Teile von welchen anderen Teilen abhängen (Abhängigkeiten).

Änderungen sind daher schwierig umzusetzen, weil nie klar ist, welche Auswirkungen eine Änderung haben wird oder weil eine kleine Änderung an einer Stelle Änderungen an anderen Stellen erfordert, die wiederum andere Änderungen erfordern usw. In einem solchen Fall spricht man von a Wartungskaskade. Spaghetti-Code ist oft das Ergebnis mangelnder Planung oder einer Anhäufung von kurzfristigen Lösungen (a kludge im Slang).

Viel Spaghetti-Code macht ausgiebigen Gebrauch von der GEHE ZUBefehl, ein Sprung innerhalb des Programms, der dazu führt, dass ein Befehl erneut ausgeführt oder vermieden wird. Solche Sprünge machen das Programm überladen. Edsger Dijkstraße warnte vor der Verwendung der GOTO-Anweisung in seinem 1968 erschienenen Artikel „Go To Statement Considered Harmful“ (Mitteilungen des ACM 11 (3) (März 1968), S. 147–148).

Beispiel

Als Beispiel ein Stück Spaghetti-Code in BASIC. Das Programm druckt die Quadrate der Zahlen 1 bis 10 auf dem Bildschirm aus. Beachten Sie, dass der Code keine Einrückungen verwendet und dass die GEHE ZU -Anweisungen haben eine Zeilennummernabhängigkeit. Beachten Sie auch die unregelmäßige Art und Weise, wie die Ausführungszeile von einem Teil des Codes zum anderen springt.

10ich=020ich=ich130DRUCKENich;"quadrat =";ich*ich40WENNich>=10DANNGEHE ZU6050GEHE ZU2060DRUCKEN"Programm abgeschlossen."70ENDE

Der folgende Code ist in einem strukturierteren Stil geschrieben. Das Programm geht die Anweisungen sauber von oben nach unten durch und Einrückungen werden verwendet, um die Wiederholungen anzuzeigen.

10ZUMich=1ZU1020DRUCKENich;"quadrat =";ich*ich30NÄCHSTERich40DRUCKEN"Programm abgeschlossen."50ENDE

Bei einer großen Menge an Code wird Spaghetti-Code schnell zu einem Problem, das erhebliche Wartungskosten verursachen kann.