Một khuyến nghị thường thấy trên thực hành tốt nhất về Moose
như sau:Tại sao "sử dụng namespace :: autoclean" được ưu tiên là "no Moose"?
"Các bit sử dụng
namespace::autoclean
chỉ đơn giản là mã vệ sinh tốt, vì nó loại bỏ biểu tượng từ không gian tên của lớp học của bạn nhập khẩu vào cuối chu kỳ biên dịch của gói của bạn, bao gồmMoose
từ khóa Khi lớp học đã được tạo, những từ khóa này không cần thiết. (Điều này được ưu tiên đặtno Moose
ở cuối gói của bạn). "
Lấy cho Moose::Manual::BestPractices (nhấn mạnh mỏ).
Tôi hiểu tất cả mọi thứ liên quan đến việc trích dẫn ở trên, ngoại trừ một điều: tại sao là việc sử dụng các namespace::autoclean
ưa thích việc sử dụng các no Moose
ở phần cuối của phạm vi từ vựng?
Có phải chỉ vì namespace::autoclean
là linh hoạt hơn, cho phép nhiều tùy chọn hơn trong việc sử dụng hay có nội dung nào đó được thực hiện (đặc biệt được điều chỉnh cho các lớp Moose
) có thể đáng tin cậy hơn?
Tôi không tìm thấy tài liệu nào làm rõ điều này và tôi rất muốn biết câu trả lời đúng.
'không gian tên :: autoclean' cũng sẽ phá vỡ mã của bạn nếu bạn định sử dụng quá tải cùng một lúc. Trong trường hợp đó, bạn có thể thử 'namespace :: sweep'. – friedo
Tài liệu hiện tại 'không gian tên :: autoclean' (v0.28, tháng 10 năm 2015) [tiểu bang] (http://stackoverflow.com/questions/9559064/why-is-use-namespaceautoclean-preferred-to-no-moose) "các ma thuật subs được cài đặt bởi quá tải sẽ không được làm sạch". –