Soy principalmente un desarrollador de ASP.NET y la única cosa que me presentaron en los últimos años que ha tenido el impacto más dramático en la calidad del código que escribo es aprender a usar contenedores IoC para administrar dependencias entre diferentes capas de la aplicación de manera eficiente.
Recientemente he hecho mi hobby aprender Ruby (y Rails) para proyectos personales, y hasta ahora me encanta el idioma. Sin embargo, una de las cosas que he notado en los diversos tutoriales y referencias que he estado usando es que todavía no se ha mencionado el uso de IoC. Esto está en marcado contraste con .NET donde está (y donde no está, debería estar) incluido en los desarrolladores en una etapa temprana.
Aprecio que una de las razones por las cuales la inyección de dependencia puede no ser necesaria en Ruby, es que todo en una clase es público y virtual, por lo que está abierto a modificaciones, por lo que no es realmente necesario para escribir buenas pruebas unitarias. Pero, por supuesto, existen muchos otros beneficios al usar contenedores IoC, como las opciones de desacoplamiento que esto conlleva, la administración de la creación de objetos y la vida útil, etc.
¿Se usa la inyección de dependencia en Ruby? Si no, ¿por qué esto no es un problema?
fuente