Tôi chủ yếu là một nhà phát triển ASP.NET và điều duy nhất tôi được giới thiệu trong những năm gần đây có tác động mạnh mẽ nhất đến chất lượng mã tôi viết là học cách sử dụng các thùng chứa IoC để quản lý các phụ thuộc giữa các lớp khác nhau của ứng dụng một cách hiệu quả.
Gần đây tôi đã biến sở thích của mình là học Ruby (và Rails) cho các dự án cá nhân và cho đến nay tôi vẫn yêu thích ngôn ngữ này. Tuy nhiên, một trong những điều tôi nhận thấy từ các hướng dẫn và tài liệu tham khảo khác nhau mà tôi đã sử dụng, đó là chưa có đề cập nào về việc sử dụng IoC. Điều này trái ngược hoàn toàn với .NET, nơi nó (và nơi không nên,) được đánh trống cho các nhà phát triển ở giai đoạn đầu.
Tôi đánh giá cao một lý do tại sao việc tiêm phụ thuộc có thể không cần thiết trong Ruby, đó là mọi thứ trong lớp đều công khai và ảo nên sẵn sàng sửa đổi để không thực sự cần thiết để viết bài kiểm tra đơn vị tốt. Nhưng tất nhiên có nhiều lợi ích khác khi sử dụng các bộ chứa IoC như các tùy chọn tách rời mà nó mang lại, quản lý việc tạo đối tượng và trọn đời, v.v.
Là tiêm phụ thuộc được sử dụng trong Ruby? Nếu không, tại sao điều này không phải là một vấn đề?