Spaghetti code: Różnice pomiędzy wersjami

Usunięte 48 bajtów ,  12 lat temu
brak opisu edycji
{{dopracować|styl}}
 
'''Spaghetti code'''- terminem tym przyjęto określać skomplikowany, trudny do zrozumienia [[kod źródłowy]] programu. WZ takitakiego sposóbkodu napisanych zostałoskompilowano wiele programów w starszych [[język_proceduralny|językach proceduralnych]], typu [[Fortran]] czy [[Basic]]. Było to jeszcze przed powstaniem metody [[programowanie strukturalne|programowania strukturalnego]].
 
Używano wielu [[instrukcja_warunkowa|instrukcji warunkowych]] i następnych w nich zagnieżdżonych, instrukcjikonstrukcji [[GOTO]], [[wyjątek|wyjątków]], które dalej powodowały wykonanie pewnych [[instrukcja (informatyka)|instrukcji]]. Droga przez kolejne instrukcjerozkazy była tak poplątana, że odczytanie takiego kodu i zrozumienie go często graniczyłobyło zbardzo cudemuciążliwe, a ewentualne modyfikacje zwykle prowadziły do błędów w programie.
 
Programowanie strukturalne, w myśl zasady ''od ogółu do szczegółu'', wprowadziło znaczne uporządkowanie w procesie tworzenia programów.
 
W skrócie polegataka tometodologia programowania polega na dzieleniu zadania do wykonania na mniejsze, aż do uzyskania wystarczająco prostych fragmentów do zrealizowania. Łatwiej wtedy jest [[implementacja|zaimplementować]] w poszczególnych modułach [[podprogram|procedury]], które w całości dadzą pożądany efekt.
 
W praktyce zazwyczaj dzieli się program na [[funkcja_(informatyka)|funkcje]], z których każda realizuje określony cel i może być wywoływana wielokrotnie. Tak napisany kod jest już znacznie bardziej czytelny.
 
Program wyświetla podaną przez użytkownika ilość pierwszych wyrazów ciągu Fibonacciego.
W kilku liniach trywialnego programu dość potrzebne było dwukrotne użycieużyto bezwarunkowej instrukcji
skoku - [[GOTO]]. Przy bardziej złożonym kodzie i większej liczbie skoków pojawi się problem z jego zrozumieniem, nie wspominając o konserwacji programu.
 
Ten sam cel zrealizowany przez programowanie strukturalne (w [[C (język programowania)|C]]):
Anonimowy użytkownik