stringtranslate.com

Parche de mono

En programación informática , el parcheo de código es una técnica que se utiliza para actualizar dinámicamente el comportamiento de un fragmento de código en tiempo de ejecución. Se utiliza para ampliar o modificar el código de tiempo de ejecución de lenguajes dinámicos como Smalltalk , JavaScript , Objective-C , Ruby , Perl , Python , Groovy y Lisp sin alterar el código fuente original.

Etimología

El término parche de mono parece provenir de un término anterior, parche de guerrilla , que se refería a cambiar el código de manera disimulada (y posiblemente de manera incompatible con otros parches similares) en tiempo de ejecución. La palabra guerrilla , casi homófona de gorilla , se convirtió en mono , posiblemente para que el parche sonara menos intimidante. [1]

Una etimología alternativa es que se refiere a “jugar con el código” (manipularlo). [ cita requerida ]

A pesar de lo que sugiere el nombre, el "parche de mono" es a veces el método oficial para extender un programa. Por ejemplo, los navegadores web como Firefox e Internet Explorer solían fomentarlo, aunque los navegadores modernos (incluido Firefox) ahora tienen un sistema de extensiones oficial. [ cita requerida ]

Definiciones

La definición del término varía según la comunidad que lo utilice. En Ruby , [2] Python , [3] y muchos otros lenguajes de programación dinámica , el término parche de mono solo se refiere a modificaciones dinámicas de una clase o módulo en tiempo de ejecución, motivadas por la intención de parchear el código de terceros existente como una solución temporal a un error o característica que no actúa como se desea. Otras formas de modificar clases en tiempo de ejecución tienen nombres diferentes, en función de sus diferentes intenciones. Por ejemplo, en Zope y Plone , los parches de seguridad a menudo se entregan mediante la modificación dinámica de clases, pero se denominan correcciones urgentes . [ cita requerida ]

Aplicaciones

El parcheo de mono se utiliza para:

Trampas

Los parches de mono maliciosos, escritos de forma incompetente y/o mal documentados pueden provocar problemas:

Ejemplos

El siguiente ejemplo de Python parchea el valor de Pi desde la biblioteca matemática estándar de Python para que cumpla con la Ley Pi de Indiana .

>>> import  math >>> math . pi 3.141592653589793 >>> math . pi  =  3.2  # parchea con un mono el valor de Pi en el módulo math >>> math . pi 3.2 ================================= REINICIAR ================================= >>> import  math >>> math . pi 3.141592653589793 >>>

Véase también

Referencias

  1. ^ "Glosario — Definición de 'parche de mono'". Sistema de gestión de contenido Plone . Archivado desde el original el 22 de enero de 2021 . Consultado el 2 de julio de 2021 . cuando alguien creó un parche de guerrilla con mucho cuidado y trató de evitar cualquier batalla, intentó que sonara menos contundente llamándolo parche de mono
  2. ^ Nutter, Charles Oliver. "Refinando Ruby". Charles Oliver Nutter .
  3. ^ Biswal, Bimal. "Monkey Patching in Python". Consejos de tecnología de software . Soluciones Mindfire. Archivado desde el original el 22 de agosto de 2012. Consultado el 9 de diciembre de 2013 .
  4. ^ Zakas, Nicholas C. (2 de marzo de 2010). "JavaScript mantenible: no modifiques objetos que no son de tu propiedad - Human Who Codes". Human Who Codes .
  5. ^ "Novedades en Rails: módulo#alias_method_chain". Ruby on Rails .
  6. ^ "Núcleos contaminados: la documentación del núcleo de Linux". www.kernel.org . Consultado el 12 de julio de 2020 .
  7. ^ Paul, Ryan (4 de mayo de 2009). "Mozilla considera un cambio de política tras la batalla por las extensiones de Firefox". Ars Technica . Consultado el 12 de julio de 2020 .