Monkey patch

Monkey patch

Monkey-Patch

Une Monkey-Patch (aussi nommé Monkey Patch, MonkeyPatch) traduit par modification-singe est une façon de modifier ou d'étendre du code qui sera exécuté sans modifier le code source original pour des langages de programmations dynamiques. Il s'applique aussi dans la modification des logiciels d'un système alors qu'il utilise un système de gestion de paquets.

La notion se nomme aussi :

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

Sommaire

Étymologie

Le terme Monkey-Patch a été utilisé premièrement sous l'appellation Guerilla Patch, qui fait référence à une modification furtive et sans aucune règle du code au moment de son exécution. Dans certaines applications (comme Zope 2) ces patches intéragissent les unes avec les autres ce qui a pour conséquence de créer une bataille pour déterminer laquelle modifiera le code.

Du au fait que les mots guerilla et gorilla sonnent de la même façon, les gens ont commencé à utiliser le terme incorrect Gorilla Patch au lieu de Guerilla Patch. Quand un développeur de logiciel crée une Guerilla Patch, il essaie avec grande difficulté d'éliminer la bataille entre les patches et le terme Monkey-Patch fut donc la désignation pour cette sorte de modification de code.

Le terme Monkey-Patch est utilisé depuis.

Applications

La modification-singe est utilisée pour :

  • Remplacer des méthodes, attributs ou fonctions au moment de l'exécution ;
  • Modifier/é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 ;
  • Correction d'un comportement ou d'un trou de sécurité qui réside dans le code source original (un exemple est dans la façon de distribuer une correction en tant qu'ajout dans la plate forme Ruby on Rails).

Pièges

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

  • Si le produit ou le paquet modifié change avec une nouvelle version, celle-ci va très certainement détruire votre patch ;
  • Si deux modules essaient de faire une modification-singe sur une même méthode, seule la dernière va "gagner" la bataille 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, spécialement lorsque l'on n'est pas l'auteur du patch ;
  • L'utilisation de la modification-singe peut conduire à des problèmes de mise-à-jour car les modifications faites sur le code peuvent se baser sur des postulats devenant faux avec l'évolution du code.

Voir aussi

Ce document provient de « Monkey-Patch ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Monkey patch de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Monkey-patch — Une Monkey Patch (aussi nommé Monkey Patch, MonkeyPatch) traduit par modification singe est une façon de modifier ou d étendre du code qui sera exécuté sans modifier le code source original pour des langages de programmations dynamiques. Il s… …   Wikipédia en Français

  • Monkey Patch — Une Monkey Patch (aussi nommé Monkey Patch, MonkeyPatch) traduit par modification singe est une façon de modifier ou d étendre du code qui sera exécuté sans modifier le code source original pour des langages de programmations dynamiques. Il s… …   Wikipédia en Français

  • Monkey patch — A monkey patch is a way to extend or modify the run time code of dynamic languages without altering the original source code. This process has also been described as duck punching .[1] Contents 1 Etymology 2 Applications 3 Pitfal …   Wikipedia

  • Monkey-Patch — Une Monkey Patch (aussi nommé Monkey Patch, MonkeyPatch) traduit par modification singe est une façon de modifier ou d étendre du code qui sera exécuté sans modifier le code source original pour des langages de programmations dynamiques. Il s… …   Wikipédia en Français

  • monkey patch — 1. noun A patch which alters the behaviour of a program by forcefully overriding aspects of the original code at runtime. 2. verb To alter the behaviour of a program by forcefully overriding aspects of the original code at runtime …   Wiktionary

  • Monkey Thieves — Logo Monkey Thieves, also known as Rebel Monkeys, is a documentary series produced by National Geographic, examining the habits and social interactions of Rhesus Macaques in the city of Jaipur, in northwestern India. Monkey Thieves follows a f …   Wikipedia

  • Monkey tree phenomenon — Monkey tree redirects here. For the tree popularly known as the Monkey puzzle Tree, see Araucaria araucana. The monkey tree phenomenon is a social phenomenon in Singapore, which began in September 2007. It arose from the discovery of a callus on… …   Wikipedia

  • Monkey Island — Titellogo Monkey Island [ˈmʌŋki ˈaɪlənd] ist eine fünfteilige Grafik Adventurereihe nach einer Idee von Ron Gilbert, der auch maßgeblich an der Entwicklung der ersten beiden Teile beteiligt war, bevor er in den frühen 1990er Jahren die Firma… …   Deutsch Wikipedia

  • Common squirrel monkey — Conservation status Least Concern …   Wikipedia

  • Colombian spider monkey — Colombian spider monkey[1] Conservation status …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”