IT-словарь › Программирование › Monkey patching

Monkey patching

Программирование Svenska → Обновлено: 2026-10-18

Изменение классов или модулей во время выполнения: добавление методов во встроенные типы, подмена функций в библиотеках, смена поведения без правки исходников.

Распространён в Ruby (открытые классы по умолчанию), Python, JavaScript. Классика Ruby: class Integer; def lucky?; self == 7; end; end. Стандартный приём в тестах (подмена requests.get, заморозка datetime.now) и для исправления багов в сторонних библиотеках, которые нельзя обновить.

Риск: другие разработчики не видят изменения — и возникает вопрос «почему этот метод вдруг возвращает другое значение?». Лучшая практика: чётко документировать, ограничивать тестами или инициализацией, избегать в боевом коде.

← Назад к словарю