2008-09-09 23 views
9

Tôi biết là Perl::CriticCó bất kỳ khung công tác tự động nào tốt để áp dụng các chuẩn mã hóa trong Perl không?

Và googling của tôi đã không dẫn đến kết quả trên nhiều lần thử cho đến thời điểm này. ?. :-(

Có ai có bất kỳ khuyến cáo đây

Bất kỳ nguồn lực để cấu hình Perl :: phê bình theo tiêu chuẩn mã hóa của chúng tôi và chạy nó trên cơ sở mã sẽ được đánh giá

+0

Ý của bạn là "Lên và chạy" là gì? – svrist

+0

Bởi "Lên và chạy", tôi có nghĩa là để cấu hình các nhà phê bình theo nhu cầu của tôi (tôi biết có Perl :: Critic :: Config, nhưng được perl coder, tôi đang cố gắng rất lười :)) và chạy nó trên cơ sở mã của tôi. Tôi sẽ cập nhật câu hỏi. – Jagmal

Trả lời

12

Về mặt thiết lập hồ sơ, bạn đã thử perlcritic --profile-proto chưa? Điều này sẽ phát ra để stdout tất cả các chính sách được cài đặt của bạn với tất cả các tùy chọn của họ với mô tả của cả hai, bao gồm cả các giá trị mặc định của họ, trong định dạng perlcriticrc. Lưu và chỉnh sửa để phù hợp với những gì bạn muốn. Bất cứ khi nào bạn nâng cấp Perl :: Critic, bạn có thể muốn chạy lệnh này một lần nữa và làm một diff với perlcriticrc hiện tại của bạn để bạn có thể thấy bất kỳ thay đổi nào với các chính sách hiện có và nhận bất kỳ thay đổi nào mới.

Về mặt chạy perlcritic thường xuyên, hãy thiết lập thử nghiệm Test::Perl::Critic cùng với phần còn lại của các thử nghiệm của bạn. Điều này là tốt cho mã mới.

Đối với mã hiện tại của bạn, hãy sử dụng Test::Perl::Critic::Progressive để thay thế. T :: P :: C :: Progressive sẽ thành công lần đầu tiên bạn chạy nó, nhưng sẽ tiết kiệm được số lượng vi phạm; sau đó, T :: P :: C :: Tiến bộ sẽ khiếu nại nếu bất kỳ số lượng nào tăng lên. Một điều cần chú ý là khi bạn hoàn nguyên các thay đổi trong hệ thống kiểm soát nguồn của mình. (Bạn đang sử dụng một, phải không?) Nói tôi kiểm tra trong một sự thay đổi và chạy thử nghiệm và thay đổi của tôi làm giảm số lượng vi phạm P :: C. Sau đó, nó chỉ ra sự thay đổi của tôi là xấu, vì vậy tôi trở lại mã cũ. T :: P :: C :: Kiểm tra lũy tiến sẽ thất bại do số lượng giảm. Điều dễ nhất để làm vào thời điểm này là chỉ cần xóa tệp lịch sử (vị trí mặc định t/.perlcritic-history) và chạy lại. Nó sẽ tái tạo số lượng cũ của bạn và bạn có thể viết những thứ mới để đưa chúng xuống một lần nữa.

Perl :: Nhà phê bình có nhiều chính sách đi kèm với nó, nhưng có một loạt các phân phối bổ sung của các chính sách. Hãy xem Task::Perl::Critic Task::Perl::Critic::IncludingOptionalDependencies.

Bạn không cần phải có một perlcriticrc duy nhất xử lý tất cả mã của bạn. Tạo các tệp perlcriticrc riêng biệt cho mỗi bộ tệp mà bạn muốn thử nghiệm và sau đó là một thử nghiệm riêng biệt trỏ đến từng tệp. Ví dụ, có một cái nhìn tại các bài kiểm tra tác giả cho P :: C chính nó tại http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/. Khi thử nghiệm tác giả được chạy, có một thử nghiệm chạy trên tất cả mã của P :: C, một thử nghiệm thứ hai áp dụng các quy tắc bổ sung chỉ dựa trên các chính sách, và một thử nghiệm thứ ba phê phán các thử nghiệm của P :: C.

Cá nhân tôi nghĩ rằng mọi người nên chạy ở mức độ nghiêm trọng "tàn bạo", nhưng loại bỏ các chính sách mà họ không đồng ý. Perl :: Critic không hoàn toàn tự tuân thủ; ngay cả các nhà phát triển P :: C cũng không đồng ý với mọi thứ Conway nói. Nhìn vào các tập tin perlcriticrc được sử dụng trên Perl :: Critic chính nó và tìm kiếm Perl :: Mã Critic cho trường hợp của "# # không có nhà phê bình"; Tôi đếm 143 hiện nay.

(Vâng, tôi là một trong những nhà phát triển phê bình Perl ::.)

5

perltidy cho hầu hết các tiêu chuẩn phong cách. perlcritic có thể dễ dàng cấu hình bằng cách sử dụng .perlcritic file. Cá nhân tôi sử dụng nó ở cấp một, nhưng tôi đã vô hiệu hóa một vài chính sách.

4

Ngoài 'khung tự động', tôi đặc biệt khuyên bạn nên sử dụng Thực tiễn tốt nhất Perl của Damian Conway. Tôi không đồng ý với 100% những gì anh ấy gợi ý, nhưng hầu hết thời gian anh ấy đều nổ tung.

1

Kết hợp tốt đẹp là perlcritic với EPIC cho Eclipse - nhấn CTRL-SHIFT-C (hoặc phím tắt được cấu hình ưa thích của bạn) và mã của bạn được đánh dấu bằng các chỉ báo cảnh báo ở bất cứ nơi nào perlcritic đã tìm thấy điều gì đó để khiếu nại. Đẹp hơn nhiều so với việc nhớ để chạy nó trước khi checkin. Và như bình thường với perlcritic, nó sẽ lấy của bạn .perlcriticrc để bạn có thể tùy chỉnh các quy tắc. Chúng tôi giữ .perlcriticrc trong phiên bản kiểm soát để mọi người có cùng tiêu chuẩn.

0

Bên cạnh đó thực hiện những điều tốt nhất mỹ phẩm, tôi luôn luôn tìm thấy nó hữu ích để chạy Devel :: Giáo sư trên bộ kiểm tra đơn vị của tôi để kiểm tra Kiểm tra vùng phủ sóng.

Các vấn đề liên quan