Tôi nhớ đọc một bài báo về cách Ruby không thực sự cần DI hoặc DI framework vì các lớp đang mở. Kết quả là, bạn chỉ có thể viết lại hàm tạo của một phụ thuộc để nó trả về một đối tượng giả.Clojure có cần tiêm phụ thuộc để làm cho mã dễ kiểm tra hơn không?
Tôi rất mới với Clojure và lập trình chức năng. Tôi tự hỏi nếu Clojure cần tiêm phụ thuộc hoặc nó có thể bỏ nó cho tương tự/lý do khác. Dưới đây là ví dụ cụ thể để làm việc với (cảm thấy tự do cách chỉ ra cách thiết kế của tôi không phải là thành ngữ của Clojure):
Hãy tưởng tượng bạn đang phát triển trình thu thập dữ liệu web/nhện. Nó cần phải đi qua một trang web bạn đã tải xuống. Đây là một hành động có tác dụng phụ. Trang web có thể thay đổi trên mọi truy vấn, kết nối internet của bạn có thể bị cắt, v.v. Nó tìm tất cả các liên kết trên trang web, truy cập từng trang web và sau đó duyệt qua nó theo cách tương tự.
Bây giờ, bạn muốn viết một bài kiểm tra nhằm loại bỏ ứng dụng khách http để nó trả về một phản hồi chuỗi mã hóa cứng thay thế. Làm cách nào để bạn gọi chương trình là -main
trong một thử nghiệm và ngăn không cho sử dụng ứng dụng khách thực sự của http?
Xem: http://stackoverflow.com/questions/13085370/what-is-the-clojure-equivalent-to-google-guice – noahlz