Spaghetti code: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica Etichetta: Annullato |
Gac (discussione | contributi) m Annullate le modifiche di 188.152.186.87 (discussione), riportata alla versione precedente di Mtarch11 Etichetta: Rollback |
||
Riga 1:
[[File:Spaghetti.jpg|miniatura|Un piatto di [[spaghetti]] è indissolubilmente intrecciato, da qui il nome ''spaghetti code''.]]
'''''Spaghetti code''''' è un termine dispregiativo per il [[codice sorgente]] di quei [[Programma (informatica)|programmi]] per [[computer]] che hanno una [[struttura di controllo]] del flusso complessa e/o incomprensibile, con uso esagerato ed errato di ''[[GOTO|go to]]'', [[Eccezione (informatica)|eccezioni]], [[Thread (informatica)|thread]] e altri costrutti di ''branching'' (diramazione del controllo) non strutturati.<ref>{{Cita web|https://stackoverflow.com/questions/195520/what-is-spaghetti-code|What is spaghetti code?|28 settembre 2016|lingua=en|data=28 ottobre 2010}}</ref><ref>{{Cita web|https://www.gnu.org/fun/jokes/pasta.code.html|Spaghetti Code|28 settembre 2016|lingua=en|data=aprile/maggio 1992}}</ref>
Line 8 ⟶ 7:
== Esempio ==
Il seguente programma è un esempio banale di spaghetti code in [[BASIC]]. Esso stampa su schermo la sequenza di numeri da 1 a 10 e il loro quadrato. Si noti come le istruzioni di "[[GOTO]]" introducano una dipendenza dai numeri di riga del programma, e come il flusso di esecuzione salti in maniera imprevedibile da una zona all'altra. In pratica, nei programmi reali le occorrenze di spaghetti code sono ben più complesse e possono aumentare notevolmente i costi di [[manutenzione (software)|manutenzione]] di un programma.
<syntaxhighlight lang=basic4gl>
Riga 23:
function square(i)
square = i * i
end function
dim i
for i = 1 to 10
|