Ajonaikainen ohjelman muokkaus

TRRY

[Hyppäsin pois Run-time type information -säikeestä, kun meinasi mennä off-topiciksi]

Ajonaikaiselle ohjelman rakenteiden muokkaukselle voi keksiä lukemattomia eri käyttötarkoituksia. Annan tässä vain yhden esimerin juuri sopivasti tänä aamuna saamastani sähköpostista. Se sisälsi koodia, joka käyttää ajonaikaiseen koodin muokkaukseen julkaisemaani Python-kirjastoa. Koodi ja kirjasto eivät toimineet yksiin ihan moitteettomasti, joten sain tietää asiasta.

Eräs porukka, jolta on tulossa uusi Linux-distribuutio, tekee mm. Emesene-nimiseen ohjelmaan (ilmeisesti jonkin sortin instant messenger) parental controllia. He haluavat toteuttaa sen pluginnina.

Plugin toimii hieman eri tapaan kuin ne tyypillisesti tekevät: se muokkaa ajonaikaisesti alkuperäistä ohjelmaa käärimällä omaa koodia mm. uuden keskustelun aloittavan metodin ympärille. Jos keskustelu pyritään aloittamaan jonkun tuntemattoman henkilön kanssa, parental controllin koodi esittää käyttäjälle virheen ja jättää kutsumatta alkuperäistä metodia. Jos taas keskustelukumppani on tunnettu, alkuperäistä metodia kutsutaan normaalisti ja keskustelu pääsee alkamaan.

Näin saadaan toteutettua täysin irrallisena moduulina ominaisuus, joka normaalisti olisi vaatinut alkuperäisen ohjelmakoodin muokkaamista. Se taas voi olla hyvinkin vaikeaa ja hidasta tällaisessa tilanteessa, missä alkuperäinen ohjelma ei ole porukan oma projekti.

Kun ohjelman rakenteita voi muokata ajonaikaisesti tällä tavalla, voi ohjelmasta tehdä huomattavasti modulaarisemman kuin perinteisemmin menetelmin.

1

342

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mutta en osaa sanoa miten nyt

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

    Luetuimmat keskustelut

    1. Sä olet epävakaa

      tai ainakin yrität onnistuneesti vaikuttaa siltä. Ei sun kanssa uskalla ruveta yhtään mihinkään, menis hommat ojasta all
      Ikävä
      47
      2241
    2. Yksi viesti häneltä ja ottaisin takaisin

      Mutta ei sitä tule. Ja ehkä parempi niin, tein jo valintani. En saanut häneltä tarpeeksi, kaikki muu meni minun edelle j
      Ikävä
      49
      2158
    3. Mieti miten paljon yritin

      Löytää yhteyttä kanssasi uudelleen sen väärinymmärryksen jälkeen. Koen etten tullut puoleltasi hyvin kohdelluksi mies😔
      Ikävä
      61
      1934
    4. Keskisarjan puheet

      Onko kansanedustajan sopivaa puhua tuollai vai pitäisikkö potkia pois eduskunnasta?
      Suomussalmi
      289
      1315
    5. Kaikki on hyvin rakkaani

      Ja tulee olemaan.
      Ikävä
      79
      1289
    6. En enää uskalla laittaa sulle viestiä

      Naiselta miehelle ****
      Ikävä
      64
      1226
    7. Sovitaanko ja halataanko?

      Pyydetään toisiltamme anteeksi...❤️
      Ikävä
      58
      1024
    8. En ikinä koskaan

      En tule ikinä hyväksymään!
      Tunteet
      63
      1002
    9. Olen selvästi rikki

      Narsistiset ihmiset jotenkin koukuttaa minut.
      Ikävä
      25
      942
    10. Kai jaksat vielä?

      Olisi sääli jos et…
      Ikävä
      73
      865
    Aihe