Sono principalmente uno sviluppatore di ASP.NET e l'unica cosa che mi è stata presentata negli ultimi anni che ha avuto l'impatto più drammatico sulla qualità del codice che scrivo sta imparando a usare i contenitori IoC per gestire le dipendenze tra diversi livelli dell'applicazione in modo efficiente.
Recentemente ho reso il mio hobby imparare Ruby (e Rails) per progetti personali, e adoro la lingua fino ad ora. Tuttavia, una delle cose che ho notato dai vari tutorial e riferimenti che ho utilizzato, è che non è stato ancora menzionato l'utilizzo di IoC. Questo è in netto contrasto con .NET, dove è (e dove non è, dovrebbe essere) inserito negli sviluppatori in una fase iniziale.
Apprezzo che uno dei motivi per cui l'integrazione delle dipendenze potrebbe non essere necessaria in Ruby, è che tutto in una classe è pubblico e virtuale, quindi aperto alle modifiche, quindi non è veramente necessario per scrivere buoni test unitari. Ma ci sono naturalmente molti altri vantaggi nell'utilizzo di contenitori IoC come le opzioni di disaccoppiamento che ciò comporta, gestione della creazione di oggetti e durata nel tempo ecc.
L'iniezione di dipendenza è usata in Ruby? In caso contrario, perché questo non è un problema?