Spagettikód
From Wikipedia, the free encyclopedia
Remove ads
A számítógép-programozásban a spagettikód a strukturálatlan és nehezen karbantartható forráskód pejoratív megnevezése. Többféle oka lehet, a programozó tapasztalatlansága, a gyorsan változó követelmények, vagy a programozási stílusra vonatkozó szabályok hiánya.[1]

Jelentése
Habár sokszor az egyszerűen csak nehezen érthető, követhető kódot is spagettikódnak nevezik, eredetileg a strukturált programszerkezetek helyett a GOTO utasítás túlzott használatát nevezik így, mivel a program összegabalyodott, emiatt karbantarthatatlan.[2] A kód szerkezete bonyolult és szövevényes, mint egy tál spagetti.[3] A United States National Bureau of Standards egy 1980-as publikációjában a spaghetti program kifejezést használták a régebbi, szétszórt és töredezett szerkezetű programokra.[4]
Objektumorientált környezetben a nem objektumorientált, strukturált kód is lehet spagettikód, hosszú és nehezen érthető metódusokkal, vagy visszaél az olyan objektumorientált lehetőségekkel, mint a polimorfizmus, amikor az aggregáció célravezetőbb lenne. A teljes program megértését ez is megnehezíti.
Remove ads
Története
A kifejezés eredete nem tisztázott. 1977-ben már használták, köztük Steele cikke Macaroni is Better Than Spaghetti címmel a Proceedings of the 1977 szimpózium keretében, melynek témája a programnyelvek és a mesterséges intelligencia volt.[5] Richard Conway 1978-ban megjelent könyve, A primer on disciplined programming using PL/I, PL/CS, and PL/CT címmel. Ebben olyan programokat jellemzett így, amelyek logikai szerkezete ugyanolyan átlátható, mint egy tál spagetti. Ez a mondat szerepel David Gries-szel közös könyvében, ami 1979-ben jelent meg An Introduction to Programming címmel.[6] Az A spiral model of software development and enhancement lap 1988-ban a kódolj és javíts korábbi gyakorlatát bírálta, azzal a tanulsággal, hogy szükség van tervezésre, és helyette a vízesésmodellt javasolta.[7] 1979-ben Paul Noll Structured programming for the COBOL programmer című könyvében a spagettikód és a patkányfészek szinonímákat alkalmazta a gyengén strukturált kódra.[8]
Az Ada – Europe '93 konferencián az Adát azzal dicsérték, hogy kivételterjedési mechanizmusa rákényszeríti a programozókat arra, hogy érthető kódot írjanak.[9]
1981-ben a The Michigan Technic BASICally speaking...FORTRAN bytes!! című cikkében rosszallását fejezte ki a FORTRAN iránt, mivel teljes egészében spagettikódból áll.[10] Habár ez a cikk úgy írta, hogy ez is bizonyítja, hogy olaszok működtek közre az IBM alapításánál, olasz matematikusok, Corrado Böhm és Giuseppe Jacopini már 1966-ban megjelentették cikküket, amiben bizonyították a strukturált programozás tételét. Edsger Dijkstra idézte ezt a cikket, a Kártékonynak tekinthető GO TO utasítás címmel megjelent nyílt levelében.[11]
Remove ads
Példa
Egyszerű példa a spagettikódra BASIC nyelven. A kódban elhelyezett GOTO
utasítás miatt a kód nehezen követhető.
1 i=0;
2 i=i+1;
3 PRINT i; "squared=";i*i;
4 IF i>=100 THEN GOTO 6;
5 GOTO 2;
6 PRINT "Program Completed.";
7 END
A fenti kód strukturált változatából hiányzik a GOTO
utasítás, a kód szerkezete könnyen átlátható és értelmezhető.
1 FOR i=1 TO 100
2 PRINT i;"squared=";i*i
3 NEXT i
4 PRINT "Program Completed."
5 END
Kapcsolódó fogalmak
- Ravioli kód az objektumorientált programozásban azt jelenti, hogy ugyan az osztályok jól strukturáltak, de nehéz követni kapcsolataikat.
- Lasagna kód arra utal, hogy a kód rétegeinek kapcsolata olyan összetett, hogy az egyik réteg változásai miatt a többi rétegen is változtatni kell.
Jegyzetek
Források
Fordítás
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads