stringtranslate.com

Патч с изображением обезьяны

В компьютерном программировании обезьянье исправление — это метод, используемый для динамического обновления поведения фрагмента кода во время выполнения. Он используется для расширения или изменения кода времени выполнения динамических языков , таких как Smalltalk , JavaScript , Objective-C , Ruby , Perl , Python , Groovy и Lisp , без изменения исходного исходного кода.

Этимология

Термин «обезьяний патч», по-видимому, произошел от более раннего термина « партизанский патч» , который относился к скрытому изменению кода – и, возможно, несовместимому с другими подобными патчами – во время выполнения. Слово «партизан» , почти гомофонное слову «горилла» , превратилось в «обезьяна» , возможно, чтобы патч звучал менее устрашающе. [1]

Альтернативная этимология заключается в том, что это слово относится к «игранию» с кодом (возиться с ним). [ нужна цитата ]

Несмотря на название, «monkey patch» иногда является официальным методом расширения программы. Например, такие веб-браузеры, как Firefox и Internet Explorer, раньше поощряли это, хотя современные браузеры (включая Firefox) теперь имеют официальную систему расширений. [ нужна цитата ]

Определения

Определение этого термина варьируется в зависимости от сообщества, использующего его. В Ruby , [2] , Python , [3] и многих других динамических языках программирования термин «заплатка обезьяны» относится только к динамическим модификациям класса или модуля во время выполнения, мотивированным намерением исправить существующий сторонний код в качестве обходного пути. ошибка или функция, которая не работает должным образом. Другие формы изменения классов во время выполнения имеют разные имена в зависимости от их разных целей. Например, в Zope и Plone исправления безопасности часто доставляются с использованием динамической модификации классов, но они называются горячими исправлениями . [ нужна цитата ]

Приложения

Патчи Monkey используются для:

Подводные камни

Вредоносные, некомпетентно написанные и/или плохо документированные обезьяньи патчи могут привести к проблемам:

Примеры

В следующем примере Python корректируется значение числа Пи из стандартной математической библиотеки Python, чтобы оно соответствовало Закону о Пи штата Индиана .

>>> импорт  математики >>> математика . пи 3,141592653589793 >>> математика . pi  =  3.2  # обезьяна-патч значения Пи в математическом модуле >>> math . pi 3.2 =============================== ПЕРЕЗАПУСК =============== ================= >>> импорт  математики >>> математика . пи 3.141592653589793 >>>

Смотрите также

Рекомендации

  1. ^ «Глоссарий - Определение« патча обезьяны »» . Система управления контентом Plone . Архивировано из оригинала 22 января 2021 г. Проверено 2 июля 2021 г. когда кто-то очень тщательно создавал партизанский патч и старался избегать каких-либо сражений, они пытались придать ему менее убедительный вид, называя его обезьяньим патчем
  2. ^ Наттер, Чарльз Оливер. «Очистка Рубина». Чарльз Оливер Наттер .
  3. ^ Бисвал, Бимал. «Исправление обезьян в Python». Советы по технологиям программного обеспечения . Решения Mindfire. Архивировано из оригинала 22 августа 2012 года . Проверено 9 декабря 2013 г.
  4. Закас, Николас К. (2 марта 2010 г.). «Поддерживаемый JavaScript: не изменяйте объекты, которыми вы не владеете - Human Who Codes». Человек, который кодирует .
  5. ^ «Новое в Rails: Module#alias_method_chain». Рубин на рельсах .
  6. ^ «Испорченные ядра — Документация по ядру Linux». www.kernel.org . Проверено 12 июля 2020 г.
  7. ^ Пол, Райан (4 мая 2009 г.). «Mozilla обдумывает изменение политики после битвы за расширения Firefox». Арс Техника . Проверено 12 июля 2020 г.