Spaghetti code: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Modifico: de:Spaghetticode; modifiche estetiche |
|||
Riga 9:
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|''goto'']] introducano una dipendenza dai numeri di riga del programma, e come il flusso di esecuzione salti in maniera impredicibile 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.
<source lang=basic4gl>
10 dim i
20 i = 0
Riga 18:
70 print i & " al quadrato = " & i * i
80 goto 30
</source>
Ecco un esempio di codice equivalente scritto con uno stile di programmazione strutturato:
<source lang=basic4gl>
function square(i)▼
square = i * i▼
end function ▼
dim i
print i & " al quadrato = " & square(i)
next
print "Programma terminato."
</source>
▲ function square(i)
▲ square = i * i
▲ end function
Anche questo programma esegue salti, ma in questo caso si tratta di salti predicibili e formalizzati. Questo perché il [[ciclo]] ''for'' e le [[Funzione (informatica)|funzioni]] definiscono [[Struttura di controllo|flussi di controllo]] standardizzati, mentre le istruzioni ''goto'' incoraggiano flussi di controllo arbitrari.
|