Le classi aperte di Ruby forniscono un modo per creare in modo programmato classi complesse. Per le librerie complicate questo semplifica la configurazione e rende il codice più piccolo e più gestibile. Se mai incontrerai un programmatore Lisp, ti parleranno di quanto sia meraviglioso usare il codice per scrivere il codice.
Questo potere può essere usato sia per il bene che per il male. La pratica della funzionalità Monkey Patching in una classe è opportuna, ma è anche una forma di debito tecnico che renderà più difficile rimanere aggiornati e mantenere il codice.
Una buona regola empirica è che una classe dovrebbe essere riaperta solo dalla persona (gruppo) che l'ha originariamente scritta. Se gli altri si sentono, allora hanno bisogno di riaprire una delle tue classi, questo è probabilmente un segno che deve essere refactored quindi è più configurabile, che è aperto per l'estensione. Questo è il D
di SOLID
.