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

300

    Vastaukset

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

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

    Luetuimmat keskustelut

    1. Oho! Sofia Belorf ja "rillimiljönääri-rakas" sai somen liekkeihin: "Optikko vai grillikioskin...?"

      "Rillimiljönääri-rakas" on kyllä hyvä titteli!!! Tsemppiä Sofialle rakkauteen ja terkkuja Nikolle ja Stefanille! Lue l
      Kotimaiset julkkisjuorut
      25
      2098
    2. Jos voisit kääntää kelloa taaksepäin

      Mihin hetkeen palaisit?
      Ikävä
      125
      1263
    3. Pitäisikö valtion lopettaa Terveysjättien tukeminen

      Nyt annetaan puoli miljardia veroparatiiseihin ja kavereille, eikö olisi järkevää että valtio tukee vain Julkista puolta
      Maailman menoa
      134
      1208
    4. Mitä luulet kaivattusi ajattelevan sinusta?

      Oletko ollut hänen mielestään reilu, rehellinen ja ymmärtäväinen? Vai oletko hänen mielestään se, joka ei ollut reilu ei
      Ikävä
      9
      1076
    5. Sofia ei taida tajuta, että kaikki nauravat hänelle

      Sofia feikkaa luksuslokkeilua muttei tajua, että se aiheuttaa lähinnä myötähäpeää ja kaikki nauravat hänelle.
      Kotimaiset julkkisjuorut
      146
      991
    6. Yllätyskäänne: Kivitipun huutokauppa rauksesi, myynnissä uudelleen.

      Kivitipusta käydään edelleen kauppaa, vaikka alkuperäinen huutokauppamyynti raukesikin. https://ilkkapohjalainen.fi/ta
      Lappajärvi
      38
      899
    7. Mukava nainen on

      Hyvännäköinen ja jollain tavalla räväkkä. Katsoin häntä, mutta mietin sinua kuitenkin. Ihan vaikka koko pitäjän kauneimm
      Ikävä
      55
      788
    8. Mikä oli se suurin syy, ettet kertonut tunteistasi?

      Olisitko voinut tai halunnut?
      Ikävä
      62
      777
    9. Lauantai aaumua

      Silmät aukesivat todellisuuteen. Hyvää huomenta. ☕🍁😊❤️
      Ikävä
      142
      766
    10. Pertikki out

      Lopeta nyt Pertikki tuo poliitiikan jauhaminen täällä. Mene jonnekin poliitiikan erikoissivuille ja jankkaa tuota muuall
      70 plus
      188
      754
    Aihe