Spagettikoodi
Spagettikoodi tarkoittaa tietokoneohjelman lähdekoodia ilman johdonmukaista rakennetta. Spagettikoodissa ohjelman logiikka siirtyy rutiinista toiseen palaamatta alkupisteeseen, joka tekee siitä vaikeasti seurattavan. Spagettikoodi viittaa liialliseen GOTO-käskyjen käyttöön, joka ohjaa tietokoneen suorittamaan toista osaa ohjelmassa ilman takeita palaamisesta.[1]
Ruven Brooksin mukaan kehittäjät ymmärtävät ohjelman ylhäältä-alaspäin mallin mukaan muodostaen hypoteeseja toiminta-alueesta, siirtämällä tämän lähdekoodiin ja määrittämällä sen asteittain. Tästä johtuen koodin ymmärtämiseen vaikuttavat asiat ovat olennaisia ohjelman toiminnan ymmärtämiseen ja tämän myötä ohjelman ylläpitoon sekä jatkokehitystoimintaan. Antisuunnittelumallit (engl. anti-pattern), jotka ovat heikkoja ratkaisuja toistuviin suunnitteluongelmiin, kasvattavat merkittävästi työmäärää tutkimisessa ja muokkaamisessa.[2][3]
Tarkkaa syntyä sanalle ei ole tiedossa, mutta se on ilmestynyt 1970-luvulla kuvaamaan koodia, jossa ei ole varsinaista rakennetta.[4] Muun muassa Guy Steele vuoden 1977 artikkelissa Macaroni is better than spaghetti on käyttänyt termiä spagetti.[5]
Lähteet
- spaghetti code pcmag.com. Viitattu 22.10.2022. (englanniksi)
- A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension (PDF) arxiv.org. Viitattu 22.10.2022. (englanniksi)
- An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, On Program Comprehension (PDF) swat.polymtl.ca. Viitattu 22.10.2022. (englanniksi)
- Przemysław Królik: How Much Will Spaghetti Code Really Cost You? youtube.com. 8.7.2022. Viitattu 23.10.2022. (englanniksi)
- Guy Lewis Steele: Macaroni is better than spaghetti dl.acm.org. elokuu 1977. Viitattu 22.10.2022. (englanniksi)