Лекция
Привет, Вы узнаете о том , что такое обезьяний патчинг, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое обезьяний патчинг, обезьянье исправление, monkey patch , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.
В компьютерном программировании обезьянье исправление — это метод, используемый для динамического обновления поведения фрагмента кода во время выполнения. Он используется для расширения или изменения кода времени выполнения динамических языков (например, Smalltalk , JavaScript , Objective-C , Ruby , Perl , Python , Groovy и т. д.) без изменения исходного исходного кода.
Термин « обезьяний патч», по-видимому, произошел от более раннего термина « партизанский патч» , который относился к скрытому изменению кода – и, возможно, несовместимому с другими подобными патчами – во время выполнения. Слово «партизан» , почти гомофонное слову «горилла », превратилось в «обезьяна» , возможно, чтобы патч звучал менее устрашающе.
Альтернативная этимология заключается в том, что это слово относится к «игранию» с кодом (возиться с ним).
Несмотря на название, «обезьяний патч» иногда является официальным методом расширения программы. Например, такие веб-браузеры, как Firefox и Internet Explorer, поощряли это, хотя современные браузеры (включая Firefox) теперь имеют официальную систему расширений.
Определение этого термина варьируется в зависимости от сообщества, использующего его. В Ruby , , Python и многих других динамических языках программирования термин «заплатка обезьяны» относится только к динамическим модификациям класса или модуля во время выполнения, мотивированным намерением исправить существующий сторонний код в качестве обходного пути. ошибка или функция, которая не работает должным образом. Другие формы изменения классов во время выполнения имеют разные имена в зависимости от их разных целей. Об этом говорит сайт https://intellect.icu . Например, в Zope и Plone исправления безопасности часто доставляются с использованием динамической модификации классов, но они называются горячими исправлениями .
Вредоносные, некомпетентно написанные и/или плохо документированные обезьяньи патчи могут привести к проблемам:
alias_method_chain
. В следующем примере Python корректируется значение числа Пи из стандартной математической библиотеки Python, чтобы оно соответствовало Закону штата Индиана о Пи .
>>> import math >>> math.pi 3.141592653589793 >>> math.pi = 3.2 # monkey-patch the value of Pi in the math module >>> math.pi 3.2
Давайте рассмотрим , как можно создать перехватчик для Fetch API с помощью обезьяньего патча в Javascript:
const { fetch: originalFetch } = window; window.fetch = async (...args) => { let [resource, config ] = args; // перехватчик запросов здесь const response = await originalFetch(resource, config); // перехватчик ответов здесь return response; };
Исследование, описанное в статье про обезьяний патчинг, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое обезьяний патчинг, обезьянье исправление, monkey patch и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем
Из статьи мы узнали кратко, но содержательно про обезьяний патчинг
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем