2008-09-18 26 views
18

Tôi đã bắt đầu chuyển đổi một dự án thành Moose và điều đầu tiên tôi nhận thấy là các bài kiểm tra phê bình/ngăn nắp của tôi đi vào địa ngục. Moose, Tidy và Critic dường như không thích nhau nhiều như trước đây.Perl :: Critic: Cuộc sống sau khi Moose?

Có tài liệu nào về cách làm cho nhà phê bình/gọn gàng đánh giá cao hơn về phương ngữ Moose không? Hầu hết người dùng Moose làm gì? Thư giãn/mương phê bình cho các mô-đun Moose nặng hơn? Chính sách tùy chỉnh?

Trả lời

6

Cả hai có thể được định cấu hình chi tiết.

Tôi không biết tại sao perltidy sẽ không thích nó, nó không liên quan gì với nó. Perltidy chỉ điều chỉnh kiểu. Bạn có thể thay đổi kiểu mã của bạn mà không thay đổi bất kỳ chức năng nào, nó chủ yếu là vấn đề khoảng trắng thực sự. Bạn nên thay đổi kiểu của bạn hoặc thay đổi cấu hình perltidy bằng cách sử dụng tệp .perltidyrc.

Tôi không biết những gì perlcritic có vấn đề với nó (phương pháp lvalue có lẽ?), Nhưng bạn có thể xem xét tắt các chính sách cụ thể bằng cách sử dụng tập tin .perlcriticrc. Ngoài ra, nếu perlcritic của bạn là cũ, bạn có thể muốn nâng cấp nó, như một số phiên bản cũ đã đưa ra một số lỗi không chính xác trong các lớp học Moose.

+3

Vâng, tôi đoán nhiều hơn về vấn đề này. Có ai có một phê bình/perltidyrc được tinh chỉnh cho các dự án dựa trên Moose? Mỗi khi tôi đi chệch khỏi hình thức kho hàng gọn gàng rc, tôi cảm thấy dơ bẩn, và thường kết thúc làm cho mọi thứ tồi tệ hơn. :-) – claco

+0

Đã thêm: Perltidy chỉ điều chỉnh kiểu. Bạn có thể thay đổi kiểu mã của bạn mà không thay đổi bất kỳ chức năng nào, nó chủ yếu là vấn đề khoảng trắng thực sự. –

+0

Moose không tạo phương thức lvalue cho bạn. Tôi thậm chí không nghĩ rằng có một phần mở rộng MooseX cho việc này. –

3

Tôi không gặp vấn đề gì với các bài kiểm tra Critic - thừa nhận rằng tôi chạy ở mức độ nghiêm trọng = 3, ít nhất một phần vì một số thứ tôi phải làm là mã kế thừa mà tôi không có/thời gian/gọn gàng, nhưng Moose công cụ buồm thông qua đó.

6

Phiên bản cũ hơn của Perl :: Chính sách "nghiêm ngặt" của Critic đã không nhận thức được Moose cho phép nghiêm ngặt cho bạn, nhưng điều đó sẽ được khắc phục nếu bạn nâng cấp Perl :: Critic.

Tôi sử dụng cả Perl :: Critic và Perl :: Tidy with Moose và tôi không thấy bất cứ điều gì đặc biệt bị hỏng. Vâng, thực sự, tôi không thể có được Perl :: Tidy để điều bố trí như đúng này:

my $apple = Apple->new({ 
    color => "red", 
    type => "delicious", 
}); 

Tidy sẽ nhấn mạnh rằng (và {hai mức độ mở cửa của indentation, và nó sẽ chỉ cần nhìn ngớ ngẩn này :

my $apple = Apple->new({ 
     color => "red", 
     type => "delicious", 
}); 

Nhưng chúng tôi có vấn đề này trước; quy ước mã hóa trong dự án là sử dụng một hashref, không phải là một băm, cho các thông số tên vì vậy, nó không thực sự là một vấn đề liên quan đến Moose như vậy

..

Các triệu chứng của bạn chính xác là gì?

/J

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