Purkkaa

Pukkaa

Purkkaa tietenkin jauhetaan. Sitten kuunneltiin purkkaa tai jytää. Mutta mitä on purkkakoodi, se ei ole vielä selvinnyt? Valaiskaapa vanhusta.

10

1635

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • jtr

      Kuvittele muutama huonosti yhteen sopivia ohjelmakomponentteja. Purkka-koodissa laitetaan palaset toimimaan jollakin tavalla, jolloin muodostuu ns. purkka-koodia.

    • esimerkki

      >Mutta mitä on purkkakoodi...

      Vaikkapa Microsoftin käyttöjärjestelmät. Kaikki pitäisi toimia mutta käytännössä kuitenkaan ei.

      Niinpä siellä tehtii radikaali päätös heittää roskiin kaikki se koodi millä nykyiset Windowsit toimii. Vistaa alettiin rakentaa puhtaalta pöydältä joten aika näyttää tuleeko siitä jotenkin parempi.

      Tähänastiset julkaisun lykkäykset toinen toisensa jälkeen ja beta-testaajien palaute ei kyllä hyvää lupaa.

      • Täsmentäjä

        Koodin toimimattomuus on täysin eri asia kuin purkka koodi. Täysin toimiva ohjelma voi olla koodiltaan täyttä purkkaa ja päinvastoin.


      • ylläpito?
        Täsmentäjä kirjoitti:

        Koodin toimimattomuus on täysin eri asia kuin purkka koodi. Täysin toimiva ohjelma voi olla koodiltaan täyttä purkkaa ja päinvastoin.

        Toimivuudessa on useampia aikaperspektiivejä. Purkkakoodi saattaa toimia sen hetken mutta pidemmän päälle tulee aina ongelmia. Kuten juurikin windowsilla jossa jonkun bugin korjaaminen service packillä tuottaa kasan ongelmia muualla. Näinhän kävi viimeksi xpeellä SP2:n kanssa joka jäänee viimeiseksi tälle nykyiselle koodille.

        Kriittinen massa koodissa on ylitetty silloin kun vikoja tulee enemmän kuin alunperin oli korjattavia.


      • Täsmentäjä
        ylläpito? kirjoitti:

        Toimivuudessa on useampia aikaperspektiivejä. Purkkakoodi saattaa toimia sen hetken mutta pidemmän päälle tulee aina ongelmia. Kuten juurikin windowsilla jossa jonkun bugin korjaaminen service packillä tuottaa kasan ongelmia muualla. Näinhän kävi viimeksi xpeellä SP2:n kanssa joka jäänee viimeiseksi tälle nykyiselle koodille.

        Kriittinen massa koodissa on ylitetty silloin kun vikoja tulee enemmän kuin alunperin oli korjattavia.

        Itse ymmärrän asian sitten, että purkkakoodi käsite koskisi vain koodin ulkoasua, ei ulkopuolisia dokumenttejä, virhe määrää, tms.

        Purkkakoodi on sellaista, ettei siitä saa tolkkua, ja tämän takia sen uudelleenkäyttö/muokkaus on työlästä ja virhealtista. Ei tällä ole suoranaista tekemistä koodin toimivuuden kanssa, jne. Purkkakoodia ei ole edes aina tarkoitettu ylläpidettäväksi ja jatko kehitettäväksi. Virheet ovat virheitä, eivätkä ne johdu aina purkkakoodista, vaikka purkkakoodin uudelleen käyttö onkin virhe altista.

        Sitä en tiedä mistä Windowsin virheet johtuvat, huonosta dokumentoinnistako, purkkakoodistako, tms.


      • ???

        windowsissa ei ole mitään vikaa. Toisin kuin esim. firefoxissa, jossa on pari ärsyttävää bugia (se, että työkalurivin napit jäävät highlitatuiksi kun kursorin vie niiden yläpuolelle ja se että se saattaa kaatua tai sulkeutua isoista mediatiedostoista, mikä ei IKINÄ tapahdu IE:llä).
        lisäksi windows on turvallisempi kuin esim linux, katso tämä:
        http://www.tietokone.fi/uutta/uutinen.asp?news_id=23422
        MISTÄ tulee se, että ihmiset haukkuvat windowssia? Mitä vikaa siinä on, erittäin hyvä käyttöjärjestelmä jossa hyvin toimivat APIt?


      • joo!
        ??? kirjoitti:

        windowsissa ei ole mitään vikaa. Toisin kuin esim. firefoxissa, jossa on pari ärsyttävää bugia (se, että työkalurivin napit jäävät highlitatuiksi kun kursorin vie niiden yläpuolelle ja se että se saattaa kaatua tai sulkeutua isoista mediatiedostoista, mikä ei IKINÄ tapahdu IE:llä).
        lisäksi windows on turvallisempi kuin esim linux, katso tämä:
        http://www.tietokone.fi/uutta/uutinen.asp?news_id=23422
        MISTÄ tulee se, että ihmiset haukkuvat windowssia? Mitä vikaa siinä on, erittäin hyvä käyttöjärjestelmä jossa hyvin toimivat APIt?

        >windowsissa ei ole mitään vikaa
        >...erittäin hyvä käyttöjärjestelmä...

        Neuvostoliiton kansalaisetkin olivat vilpittömästi sitä mieltä että kommunismi oli oikein hyvä, jopa paras yhteiskuntajärjestelmä kun ei ollut tietoa mistään paremmasta.


    • glue routine

      Oletetaan että olet käyttänyt ohjelmassasi graafista kirjastoa jossa ympyrä piirretään kutsumalla funktio:

      void DrawCircle(int x, int y, int radius) //kirjastoaliohjelma

      Parametrien yksiköt ovat mm. Olet käyttänyt tätä funktiota hyvin monessa paikassa. Nyt vaihdat uuteen graafiseen kirjastoon jossa vastaava funktio on:

      int Circle( double radius, double x, double y) //uusi kirjastoaliohjelma

      Huom parametrien järjestys verrattuna alkuperäiseen kirjasto-ohjelmaan. Parametrien yksiköt ovat nyt cm, ei mm. Sen sijaan että tekisit tuhat ja yksi korjausta ohjelmakoodiisi teet ns glue routine jolla on sama nimi kun alkuperäinen kirjastoaliohjelma

      void DrawCircle(int x, int y, int radius) //oma purkkakoodi
      {
      int virhekoodi;

      virhekoodi = Circle(radius/10.,x/10., y/10.); //kutsu uuteen kirjastoohjelmaan

      return;
      }

      Tämä on vain yksi esimerkki, toivottavasti ymmärsit idean. Vähän monimutkaisempi esimerkki voisi olla jos kutsut esim Pascal-koodia tai FORTRAN-koodia C-ohjelmasta (ne välittävät mm parametrejä eri tavalla ja ilmaisevat tekstistringejä eri tavalla). Eri tavallaan "liimat" (glue) tai "eristät" (encapsulate) muuten yhteensopimatonta koodia siten että voit käyttää sitä.

      • ja nimikkeet

        oikeat, mutta joskus asia on minimutkaisempi:

        Jos on hyvin suuri ohjelma (kuten esim käyttöjärjestelmä) siitä ei kannata toimittaa kokonaan uusi versio aina kuin havaitaan virhe, vaan tehdään ns. patch (suomeksi "paikkaus" tai "parsinta"). Tällöin korvataan osa käännetystä (binääri) koodista uudella koodilla. Jotta suhteelliset osoitteet pysysivät muuttumattomina, vanhan koodin alkuun laitetaan ensimmäisenä kutsu uuteen (korjattuun) koodiin.

        Pääperiaate on kuitenkin aivan sama.


    • Koodari127

      Nyt on kyllä pakko vastata. Näköjään kaikki on käsittänyt koko jutun väärin. Ei, purkka ei ole huonosti toimiva ohjelma. Purkka ei näy ohjelman käyttäjälle. Ohjelmointivirheet eivät ole purkkaa, vaan virheitä, asiat on koodattu virheellisesti.

      Purkkakoodi on huonosti toteutettua koodia. Purkkaratkaisu ovat eräänlaisia umpikujia: Jos koodaa purkkaa, on ohjelman myöhempi paranteleminen ja muuttaminen vaikeampaa, ja se saattaa vaatia suuria muutoksia koodissa. Purkan tuottaminen on helppoa ja nopeaa, mutta sillä ei pääse pitkälle. Koodauksessa pikkuasioita voidaan testata purkalla, mutta jälkeenpäin asia koodataan kunnolla. Ohjelman eri osat liittyvät yleensä toisiinsa, eli asiat ohjelmoidaan perustuen aiempaan koodiin. Kunnollisen koodin päälle voi koodata kunnollista koodia, purkan päälle vain purkkaa, joka käy ylivoimaisen työlääksi, jos purkan päälle koodaamista jatketaan vähänkään pidemmälle.

      Esimerkki purkasta ja kunnollisesta koodista:

      Teet pelin, jossa on kolme samankaltaista pelihahmoa. Koodaat hahmon 1 ja joitakin sen ominaisuuksia. Kopioit hahmon 1 koodin hahmoille 2 ja 3. Nyt, jos haluat muuttaa tai lisätä ominaisuuksia hahmoille, joudut copypastettamaan sen muillekin. Jos muutat hahmoja, joudut muuttamaan koodin jokaista kohtaa. Tämä on purkkaa. Koodin käsittely muuttuu erittäin vaivalloiseksi ja työlääksi.

      Teet pelin, jossa on kolme samankaltaista pelihahmoa. Koodaat luokan (eräänlaisen ryhmän), ja lisäät siihen kolme hahmoa. Koodaat luokan kaikille jäsenille (hahmoille) yhteiset ominaisuudet (Sen lisäksi yksilöllisille hahmoille voidaan tietenkin lisätä muutakin). Jos muutat hahmoja, sinun tarvitsee vain muuttaa luokan hahmojen yhteisiä ominaisuuksia. Helppoa. Tämä on kunnollista koodia.


      Terveisin: 11 vuotiaana ohjelmoinnin aloittanut, nyt 17 vuotias.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      78
      1805
    2. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      18
      1689
    3. Millä voin

      Hyvittää kaiken?
      Ikävä
      16
      1514
    4. En voi sille mitään

      Tulen niin pahalle tuulelle tästä paikasta nykyisin. Nähnyt ja lukenut jo kaiken ja teidän juttu on samaa illasta toisee
      Ikävä
      12
      1194
    5. 50+ naiset kyl

      Lemottaa sillille mut myös niitte kaka lemottaa pahlle ku kävin naiste veskis nuuhiin
      Ikävä
      19
      1193
    6. Välitän sinusta mies

      Kaikki mitä yritin kertoa tänään ei mennyt ihan putkeen..Joka jäi jälkeenpäin ajateltuna suoraan sanottuna harmittaa aiv
      Työpaikkaromanssit
      6
      1182
    7. hieman diabetes...

      Kävin eilen kaverin kanssa keskusapteekissa kun on muutama kuukausi sitten tullut suomesta ja oli diabetes insuliinit lo
      Pattaya
      12
      1136
    8. Annetaanko olla vaan

      Siinä se, tavallaan kysymys ja toteamuskin. Niin turhaa, niin rikkovaa. On niin äärettömän tärkeä, ja rakas olo.. N
      Ikävä
      29
      1131
    9. Miten joku voi käyttää koko elämänsä

      siihen että nostelee täällä vanhoja ketjuja ja troIIaa niihin jotain linkkiä mitä kukaan ei avaa? Ihmisellä ei ole mitää
      Tunteet
      6
      1119
    10. Pakkoruotsi on leikkikieli, jota ei ole tarkoituskaan osata

      Pakkoruotsi on leikkikieli. Ennen leikkikieltä sanottiin siansaksaksi, sitten keksittiin tilalle pakkoruotsi. Pakkoruot
      Kielipolitiikka
      7
      1104
    Aihe