Ya, monkeypatching sangat berguna!
Entah bagaimana, nama tampaknya sangat berpengaruh pada persepsi orang. Sebut saja "monkeypatch" dan kedengarannya buruk, sebut saja "hot fix" atau "on-the-fly fix" dan kedengarannya bagus.
Terlepas dari itu, saya pikir kemampuan untuk mengubah metode / atribut / fungsi saat runtime adalah hal yang sangat berguna. Bahkan orang javascript menggunakannya sepanjang hari tanpa mungkin menyadarinya.
Contohnya:
button.onclick = function(e) { ...}
Baris sederhana ini menggambarkan fakta bahwa Anda mengubah perilaku tombol. Itu dirancang seperti itu. Demikian juga, Anda dapat mengubah setiap fungsi lain tetapi itu konyol untuk melakukannya.
Sekarang, untuk pertanyaan tentang pengiriman tambalan seperti itu ... yah ... mengapa tidak. Anda hanya perlu mengunduh tambalan kecil alih-alih rilis besar. Heck, Anda bahkan bisa menambal server tanpa menghentikannya, bagus! Dan kemudian, suatu hari, Anda juga bisa mengambil rilis terbaru untuk pembaruan yang lebih besar. Cukup adil. Jadi ya, saya memilih "runtime patches" sebagai hal yang baik.
Yang cukup menarik, beberapa bahasa seperti Erlang bahkan dibangun di sekitar konsep ini. Kemampuan untuk memperbarui server dengan cepat.
Tentu saja, pada akhirnya, dan suka dengan yang lainnya, itu masalah bagaimana Anda menggunakannya. Anda dapat membuat barang-barang OO yang bagus dan menyebalkan, semuanya sama saja.
EDIT:
Izinkan saya menambahkan beberapa perbedaan huruf besar, baik Anda menambal perpustakaan Anda sendiri atau perpustakaan pihak ketiga .
... pada dasarnya, apa yang Anda lakukan dengan tambalan itu adalah memperbaiki bug Anda sendiri atau pustaka pihak ketiga . Dalam kedua kasus itu berguna. Untuk Anda sendiri, ini memungkinkan Anda mengirimkan perbaikan saat bepergian. Untuk pihak ketiga, Anda menunggu (beberapa bulan?) Sampai mereka memperbaikinya sendiri, atau Anda melakukannya sendiri. (Anda masih bisa mengirimkan mereka tambalan, sehingga mereka akan memperbaikinya di sisi mereka). Ketika mereka merilis versi lib berikutnya dengan masalah diperbaiki, Anda masih bisa, jika Anda ingin memperbarui perpustakaan dan menghapus tambalan di sisi Anda.
Sekarang, tentu saja, jika Anda menggunakan tambalan untuk mengubah perilaku lib dan mengasingkan tujuan / cara kerjanya, maka jelas itu adalah resep untuk bencana. Bahkan seekor monyet akan melihat itu ... well, saya harap. ;)