Purkkaa

Pukkaa

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

10

1953

    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. Nainen kokki autossa kammottavan kuoleman sähköauto-Teslan syttyessä tuleen.

      https://www.is.fi/autot/art-2000011652873.html Näin vaarallisia sähköautopalot voivat olla.
      Maailman menoa
      84
      5157
    2. Persuja ei aluevaltuustoissa näy

      Ei tunnu persuja paljon paikalliset asiat kiinnostavan, vaan ainoastaan ulkomaalaiset, joku Israel ja Trumpin fanitus.
      Maailman menoa
      25
      3480
    3. Päivän Riikka: Uudenkaupungin autotehdas hiljeni

      Näin ne 100 000 uutta pysyvää ei-tempputyötä yksityiselle sektorille tämän hallituksen ansiosta syntyy. Työntekijöille j
      Maailman menoa
      38
      2828
    4. Riikka vie Suomen kohta ykköseksi työttömyyskisassa

      Espanja: 10,5 % Suomi: 10,3 % Ruotsi: 9,3 % Kisa on tiukkaa, mutta Riikalla hyvä draivi päällä. Vasemmistolaisen päämin
      Maailman menoa
      9
      1972
    5. Kerro kaivattusi nimi tai nimikirjaimet

      🌠 Tähdenlento! Kirjoittamalla kaivattusi nimen tai nimikirjaimet tähän, saattaa toiveesi toteutua.
      Ikävä
      58
      1820
    6. Miksi pitäisit enemmän

      Minusta kuin siitä toisesta?
      Ikävä
      47
      1586
    7. Alkuvuodesta poistuu työttömyyskorvaus kaikilta joilla on säästössä rahaa

      Tippuu korvaukselta iso määrä työttömiä.
      Maailman menoa
      263
      1476
    8. Mitä meidän välillä

      Tulee tapahtumaan vai tuleeko mitään?
      Ikävä
      94
      1382
    9. Tämmönen höpsö

      Höpönassu mä olen. En mikään erikoinen…hölötän välillä ihan levottomia. Tykkäisit varmasti jos olisin siellä sun vieress
      Suhteet
      44
      1356
    10. Hiljaisuus

      Tarkoittaa välinpitämättömyyttä, henkistä väkivaltaa ja kiusaamista. Olet valinnut hiljaisuuden.
      Ikävä
      73
      1078
    Aihe