Qualifica-se de código espaguete um programa de computador que não segue as regras da programação estruturada e abusa de desvios, condicionais ou não, o que torna sua leitura por seres humanos bem difícil. A expressão é uma crítica a programas mal organizados, por isso difíceis de analisar, corrigir e modificar. Definição de spaghetti code em The Jargon File, version 4.4.8. Acesso em 6Jul2018. TOMOV & IVANOVA. COMPUTER SCIENCE AND EDUCATION IN COMPUTER SCIENCE (CSECS 2014), At Sozopol, Bulgaria. Teaching good practices in software engineering by counterexamples. Acesso em 6Jul2018.

Por exemplo, o programa a seguir

10 INPUT A$ 20 GOTO 200 30 PRINT A$,B 40 GOTO 1000 100 GOTO 30 200 INPUT B 210 IF B>=0 GOTO 30 220 IF B<0 GOTO 100 500 GOTO 3000 1000 INPUT C$ 1200 INPUT D 2000 IF D>0 GOTO 500 3000 PRINT A$,"+",C$,"=",B+D 5000 END

equivale ao programa:

10 INPUT A$,B 20 PRINT A$,B 30 INPUT C$,D 40 PRINT A$,"+",C$,"=",B+D 50 END

porém está em código espaguete.

Obs.: a versão acima está intencionalmente confusa e provavelmente nunca seria criada senão com este propósito.

O porquê do nome O nome Código Espaguete vem do fato que um fluxograma do programa feito dessa forma provavelmente apresentará várias linhas se entrecruzando, como em um prato de espaguete.

Categoria:Antipadrão de projeto