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]

Havainnollistava kuva spagetista.

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

  1. spaghetti code pcmag.com. Viitattu 22.10.2022. (englanniksi)
  2. 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)
  3. 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)
  4. Przemysław Królik: How Much Will Spaghetti Code Really Cost You? youtube.com. 8.7.2022. Viitattu 23.10.2022. (englanniksi)
  5. Guy Lewis Steele: Macaroni is better than spaghetti dl.acm.org. elokuu 1977. Viitattu 22.10.2022. (englanniksi)
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.