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

307

    Vastaukset

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

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

    Luetuimmat keskustelut

    1. Vakava rikosepäily Seinäjoella

      Ilkka ei taaskaan tiedä mitään mutta hesalaiset kertoo: https://www.is.fi/kotimaa/art-2000010959325.html
      Seinäjoki
      42
      2866
    2. Olet saanut kyllä tunnisteita

      Itsestäsi ja meistä. Mutta mikä siinä on, ettet kirjoita etkä anna itsestäsi merkkejä. Ellei ole kysymys siitä, mikä ens
      Ikävä
      30
      2529
    3. Mitä on woketus?

      Täälläkin hoetaan usein sanaa "woketus". Mitä se tarkalleen ottaen tarkoittaa? Ilmeisesti sen käyttäjät ymmärtävät sen k
      Maailman menoa
      436
      2428
    4. Mies pakko olla rehellinen

      Kiinnostuin koska olet tosi komea ja sulla on ihana puheääni. Olen aika pinnallinen sitten kai... 😓 kyllä olet tosi rau
      Ikävä
      20
      2367
    5. Oletko jo luovuttanut?

      Joko olet luovuttanut kaivatun suhteen ja hyväksynyt, että mitään ei tule?
      Ikävä
      143
      1808
    6. Ikääntyvien tilanne Suomessa on järkyttävä - Hoivakotiin ei pääse, vaan joutuu selviytymään yksin

      Ikääntyvien tilanne Suomessa on järkyttävä… Hoivakoteihin sijoittamista vältellään, koska hoito on kallista ja hyvinvoin
      Maailman menoa
      142
      1782
    7. Kristo Salminen, 52, riisuutui - Paljasti Iso-Börjen tatuoinnit - Somekansan tuomio yksimielinen

      Iso-Börje, tuo iso, tatuoitu, yltiöromanttinen ja aika kuuma rikollispomo - vai mitä mieltä sinä olet? Lue lisää ja kat
      Tv-sarjat
      24
      1325
    8. Hirvenmaitojuusto

      Olin Prisman juustohyllyllä kun vierestä alkoi kuulua kamala paapatus. Siinä oli vanha muori, joka räyhäsi raivokkaasti,
      Ruoka ja juoma
      4
      1202
    9. Vanhentunut runsaasti.

      Ei hyvä juttu. Mieheltä pötkylänaiselle.
      Ikävä
      74
      1099
    10. Kerro mulle miksi juuri me

      Kohdattiin? Tässä elämässä. Vaikka ollaan edelleen tutut tuntemattomat. Se on omituinen tunne.
      Ikävä
      67
      1017
    Aihe