Un Monkey-Patch (aussi écrit Monkey Patch, MonkeyPatch) traduit par modification-singe consiste en la modification ou l'extension sans toucher au code source original. Cela est possible dans les langages de programmation dynamiques. Cela peut être appliqué à la modification des logiciels de base d'un système si ce système autorise la gestion de paquets.

La notion se nomme aussi :

  • Guerilla patch ;
  • Extension des classes précédemment déclarées ;
  • Réouverture des classes ;
  • Hijacking.

Étymologie

modifier

Il s'agissait à l'origine de modification dynamique et furtive de code au moment de son exécution, cela sans sécurité, par des bouts de code extérieurs. Dans certaines applications (comme Zope 2), ces bouts de code interagissent les uns avec les autres avec pour conséquence de créer une compétition à qui modifiera réellement le code. Dans le contexte originel donc, plusieurs bouts de codes entraient en compétition pour la modification du code original, d'où la notion de guérilla et l'utilisation du terme Guerilla Patch.

Mais le côté dangereux de la modification dynamique et le fait que ces codes constituent une menace pour un système, a entraîné l'utilisation fautive du terme Gorilla Patch, du fait de la similarité de consonance entre guerilla (guérilla) et gorilla (gorille) et de la connotation de gorille avec menace.

Les tenants des aspects positifs possibles de la modification dynamique de code, afin de diminuer la connotation de menace, ont commencé à utiliser le terme Monkey-Patch (singe au lieu de gorille) qui est resté le seul en usage.

Applications

modifier

La modification-singe est utilisée pour :

  • Remplacer des méthodes, attributs ou fonctions au moment de l'exécution, notamment pour les tests ;
  • Modifier ou étendre le comportement ou l'apparence d'un produit pour une tierce personne, sans maintenir sa propre copie du code source ;
  • Appliquer un patch, au moment de l'exécution, à un objet en mémoire, sans l'appliquer au code source sur disque ;
  • Corriger un comportement ou un trou de sécurité existant dans le code source original (c'est le cas de la distribution de corrections par ajout dans la plate-forme Ruby on Rails).

Pièges

modifier

L'utilisation de la modification-singe comporte les problèmes suivants :

  • Si le produit ou le paquet modifié est remplacé par une nouvelle version, celle-ci détruira sans doute le patch ;
  • Si deux modules essaient de faire une modification-singe sur une même méthode, seule la dernière gagnera la compétition et l'autre n'aura aucun effet ;
  • Si la modification-singe crée une différence entre le code source original et celui qui s'exécute, la résolution de conflits et de bogues devient très difficile, en particulier lorsque l'on n'est pas l'auteur du patch ;
  • L'utilisation de modifications-singe peut conduire à des problèmes de mise à jour car les modifications faites sur le code peuvent se fonder sur des postulats à l'origine exacts mais peu à peu invalidés par l'évolution du code.

Articles connexes

modifier

📚 Artikel Terkait di Wikipedia

Hijacking

d'enfilade) Object hijacking : modification dynamique d'un objet. Voir Monkey-Patch On parle aussi de hijacking lorsqu'un logiciel malveillant ou malware

Patch Mackenzie

l’améliorant (comment ?) selon les conventions filmographiques. Patch Mackenzie Patch Mackenzie (née Patricia Jean Mackenzie est une actrice américaine

Conleth Hill

Fullerton 2014 : Two Down de Matthew Butler-Hart : Harry Montague 2015 : A Patch of Fog de Michael Lennox : Sandy Duffy 2016 : The Truth Commissioner de

Emily Hampshire

de Stevie Budd dans Schitt's Creek (2015–2020), Jennifer Goines dans 12 Monkeys (2015-2020) ou plus récemment de Rose Mason dans The Rig (depuis 2023)

Squirrel Girl

dédié à la mémoire de Monkey Joe : « Monkey Joe 1992-2005. He loved nuts. He will be missed. » Aux côtés de Squirrel Girl, Monkey Joe a aidé à vaincre

Liste de jeux ColecoVision

Rogers: Planet of Zoom Bump 'n' Jump Burgertime Cabbage Patch Kids: Adventures in the Park Cabbage Patch Kids Picture Show Campaign '84 Carnival Centipede Choplifter

Sapajou du Panama

Carvajal, « Population Study of Coiba Howler Monkeys (Alouatta CoibensisCoibensis) and Coiba Capuchin Monkeys (Cebus Capucinus Imitator), Coiba Island National

Skid Row (groupe américain)

(incluse dans la quatrième saison de la série télévisée Californication), Monkey Business ou encore Youth Gone Wild, qui l'ont propulsé au sommet de la gloire