Chúng tôi đã sử dụng Perl::Critic
tại nơi làm việc để thực thi các quy ước về mã của chúng tôi. Gần đây, chúng tôi đã gặp sự cố với thư mục /tmp
được lấp đầy do chức năng Temp::File::tempdir
. tempdir
dọn dẹp khi quá trình Perl chấm dứt, nhưng vì toàn bộ chương trình phụ trợ của chúng tôi là một quá trình Perl, điều này chỉ xảy ra khi máy chủ tự khởi động lại (không thường xuyên). Chúng tôi muốn khuyến khích các nhà phát triển sử dụng phương pháp đối tượng newdir
trong tương lai, làm sạch sau khi chính nó ngay khi đối tượng nằm ngoài phạm vi.Perl :: Phê bình "Không sử dụng phương pháp này" quy tắc loại
Về cơ bản, chúng tôi đang cố gắng đánh dấu Temp::File::tempdir
là vi phạm quy ước về mã, nhưng dường như tôi không thể tìm thấy bất kỳ quy tắc nào tương tự trên CPAN. Tôi hiểu rằng điều này khó thực thi bằng ngôn ngữ được nhập động mà không đưa ra các mặt tích cực sai, nhưng tôi hy vọng một người nào đó đã gặp sự cố tương tự trong quá khứ với một chức năng không được chấp nhận khác. Chúng tôi không mong đợi để nắm bắt tất cả các trường hợp khó khăn hoặc, chỉ sử dụng rõ ràng nhất của Temp::File::tempdir
. Ý tưởng là để khuyến khích sử dụng tình cờ tempdir
khi newdir
có thể thực hiện công việc, không phải để nắm bắt mọi nỗ lực để đánh lừa nhà phê bình (nhà phát triển luôn có thể sử dụng ## no critic
). Nó có thể sẽ đủ để khiếu nại khi tempdir
được sử dụng nếu use Temp::File
được xác định (tốt nhất là kiểm tra xem không có gì khác xác định lại tempdir
) và khi sử dụng Temp::File::tempdir
.
Đã có điều gì đó tương tự hay tôi nên bắt đầu từ đầu? Cảm ơn
Tò mò. Có các chính sách 'ProhibitEvilModules' và' ProhibitEvilVariables' có thể cấu hình, nhưng không có 'ProhibitEvilMethods'? – mob