Ja, Monkeypatching ist sehr nützlich!
Irgendwie scheinen Namen einen großen Einfluss auf die Wahrnehmung der Menschen zu haben. Nennen Sie es "Monkeypatch" und es klingt schlecht, nennen Sie es "Hot Fix" oder "On-the-Fly Fix" und es klingt gut.
Unabhängig davon halte ich die Möglichkeit, Methoden / Attribute / Funktionen zur Laufzeit zu ändern, für eine sehr nützliche Sache. Selbst Javascript wird den ganzen Tag benutzt, ohne es zu wissen.
Zum Beispiel:
button.onclick = function(e) { ...}
Diese einfache Linie zeigt, dass Sie das Verhalten der Schaltfläche ändern. Es wurde so konzipiert. Ebenso könnten Sie jede andere Funktion ändern, aber es wäre dumm, dies zu tun.
Nun zu der Frage, wie Patches auf diese Weise geliefert werden sollen ... na ja ... warum nicht. Sie müssen nur einen kleinen Patch anstelle einer großen Version herunterladen. Du könntest sogar einen Server patchen, ohne ihn anzuhalten, großartig! Und dann könnten Sie eines Tages auch die neueste Version für ein größeres Update abrufen. Meinetwegen. Also ja, ich stimme für "Laufzeit-Patches" als eine gute Sache.
Interessanterweise wurden einige Sprachen wie Erlang sogar um dieses Konzept herum aufgebaut. Die Fähigkeit, einen Server im laufenden Betrieb zu aktualisieren.
Natürlich ist es am Ende und wie bei allem anderen auch eine Frage der Verwendung. Du kannst wundervolle OO-Sachen machen und eine Scheiße, es ist alles das Gleiche.
BEARBEITEN:
Lassen Sie mich einen Unterschied zwischen Groß- und Kleinschreibung machen, unabhängig davon, ob Sie Ihre eigene Bibliothek oder eine von Drittanbietern patchen .
... im Grunde, was mit Ihnen tun ein solcher Patch einen Fehler von sich Festsetzung Ihre eigenen oder einen Dritten Bibliothek. In beiden Fällen ist es nützlich. Auf eigene Faust können Sie eine schnelle Fehlerbehebung durchführen. Für einen Drittanbieter warten Sie entweder (mehrere Monate?), Bis er es selbst repariert, oder Sie tun es jetzt selbst. (Sie können ihnen den Patch trotzdem übermitteln, damit sie ihn auf ihrer Seite reparieren). Wenn sie ihre nächste lib - Version mit dem Problem behebt Release können Sie noch, wenn Sie die Bibliothek aktualisieren und den Patch auf Ihrer Seite entfernen.
Wenn Sie nun ein Patch verwenden, um das Verhalten einer Bibliothek zu ändern und ihren Zweck / ihre Arbeitsweise zu entfremden, dann ist das natürlich ein Rezept für eine Katastrophe. Sogar ein Affe würde das sehen ... nun, ich hoffe. ;)