Spaghetti code: Różnice pomiędzy wersjami

Dodane 71 bajtów ,  6 lat temu
m
drobne redakcyjne
(lit., drobne redakcyjne)
m (drobne redakcyjne)
{{dopracowaćDopracować|styl}}
 
'''Spaghetti code''' – termin określający skomplikowany, trudny do zrozumienia [[kod źródłowy]] programu. Z takiego kodu skompilowano wiele programów w starszych [[język proceduralny|językach proceduralnych]], typu [[Fortran]] czy [[BasicBASIC]]. 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, konstrukcji [[Instrukcja skoku|GOTO]] czy [[wyjątek|wyjątków]]. Droga przez kolejne rozkazy była tak poplątana, że odczytanie takiego kodu i zrozumienie go było bardzo uciąż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 taka metodologia programowania polega na dzieleniu zadania do wykonania na mniejsze, aż do uzyskania wystarczająco prostych fragmentów do zrealizowania. Łatwiej wtedy jest [[Implementacja (informatyka)|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)Podprogram|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.
 
== Przykłady ==
120 END
 
Program wyświetla podaną przez użytkownika ilość pierwszych wyrazów [[ciąg Fibonacciego|ciągu Fibonacciego]]. W kilku liniach trywialnego programu dwukrotnie użyto bezwarunkowej instrukcji skoku - [[Instrukcja skoku|GOTO]]. Przy bardziej złożonym kodzie i większej liczbie skoków pojawi się problem z jego zrozumieniem.
 
Ten sam cel zrealizowany przez programowanie strukturalne (w [[C (język programowania)|C]]):
}
 
Poszczególne kroki wykonywane są w przejrzystej i formalnej [[pętla (informatyka)|pętli]]. Ciąg instrukcji do wykonania w programowaniu strukturalnym nie może być dowolnie zmieniany, "przejścia"„przejścia” do poszczególnych [[blok podstawowy|bloków]] są obsługiwane przez zaimplementowane konstrukcje (np. ''for, while, do while czy if else'').
 
== Zobacz też ==
* [[Algol (język programowania)|Algol]]
* [[ATLAS (język programowania)|ATLAS]]
* [[Język wysokiego poziomu|autokod]]
* [[Język maszynowy|kod maszynowy]]
* [[programowanie obiektowe]]