2009-11-23 47 views
5

Tôi hiểu rằng thông minh :: Bình luận không nên được sử dụng trong mã sản xuất, vì nó là một bộ lọc nguồn.Tôi nên có những lo ngại gì nếu tôi sử dụng Smart :: Nhận xét trong mã phát triển?

Tuy nhiên, tôi đã sử dụng Smart::Comments trong mã phát triển của mình và sau đó nhận xét ra dòng "sử dụng" trước khi gửi mã vào sản xuất.

Vì tôi sẽ sử dụng nó trong mã phát triển của mình, điều tôi nên quan tâm đặc biệt là gì? Tôi đã tìm kiếm trên Internet và không tìm thấy bất kỳ lý do nào mà tôi nên lo lắng ngoại trừ bộ lọc nguồn là "ý tưởng tồi" hoặc "tà ác" hoặc chúng không bao giờ được sử dụng trong mã sản xuất.

UPDATE: bây giờ tôi đang sử dụng một phím ràng buộc trong vim để thực hiện cách tiếp cận Sinan Ünür của:

map <Leader>c <Esc>:!perl -MSmart::Comments %<CR> 
+1

Xem thêm wiki cộng đồng của daotoad mà anh ấy đã mở sau khi trả lời câu hỏi này: http://stackoverflow.com/questions/1785852/why-are-perl-source-filters-bad-and-when-is-it-ok -cho-sử dụng-chúng. –

+0

Xem bài viết [2015 Perl Advent về Smart :: Bình luận] (http://www.perladvent.org/2015/2015-12-11.html) –

Trả lời

4

lọc Nguồn là xấu có vấn đề bởi vì họ sử dụng một cú pháp hoàn hảo để viết lại mã của bạn. Mọi thứ đều hoạt động tuyệt vời, miễn là bộ lọc quản lý mã mà bạn cung cấp.

Thời điểm bạn thêm thứ gì đó phá vỡ bộ lọc, toàn bộ hệ thống tự hủy và bạn gặp phải các lỗi kỳ lạ.

Bộ lọc nguồn cũng gây nhầm lẫn trình gỡ lỗi, điều này có thể là một vấn đề - nếu bạn sử dụng trình gỡ rối.

2

Tôi không có ý kiến ​​về phần bộ lọc nguồn. Nhưng chỉ cần nhìn vào Bản tóm tắt của Smart::Comments. Họ có thể thông minh, nhưng những gì bạn kết thúc với khó có thể được gọi là "ý kiến". Nếu bạn cần một thanh tiến trình, hãy tiếp tục, thêm một cách rõ ràng. Nếu bạn cần phải bình luận một cái gì đó, làm điều đó trong một cách mà hãy để các chàng tiếp theo đọc nguồn của bạn hiểu những gì bạn có nghĩa là.

1

Thông minh :: Nhận xét được viết đặc biệt theo cách đó, khi bạn nhận xét "sử dụng Smart :: Comments", nó sẽ chỉ là nhận xét, vì vậy chương trình không bị ảnh hưởng gì cả. Các mô-đun khác có vấn đề nghiêm trọng hơn, như khi bạn sẽ không thể có được số dòng chính xác của lỗi.

9

Tôi không muốn đặt:

use Smart::Comments; 

trong mã của tôi. Khi tôi thực sự sử dụng Smart::Comments, tôi gọi kịch bản sử dụng:

$ perl -MSmart::Comments test.pl 

Bằng cách này, không có cơ hội Smart::Comments sẽ được sử dụng trong mã sản xuất.

+1

++! Tôi đã thường xuyên nhìn vào S :: C và ước gì tôi không tin vào sự kiêng nhịn từ các bộ lọc nguồn. Điều này cung cấp một cách an toàn để sử dụng S :: C - bây giờ tôi thực sự có thể sử dụng chúng. – daotoad

+0

Cảm ơn! Cách tiếp cận tốt. –

5

Tôi là một fan hâm mộ lớn của Smart :: Bình luận, và nó được gọi là trong suốt mã của chúng tôi, phát triển và sản xuất bản sao. Tôi hiếm khi sử dụng nó cho thanh tiến trình, chủ yếu là cho các xác nhận và đầu ra gỡ lỗi.

Tuy nhiên, việc thực hành là để kéo nó trong việc sử dụng các hình thức:

use Smart::Comments -ENV; 

Nếu môi trường Smart_Comments biến không được thiết lập, Smart :: Bình luận là hoàn toàn trơ.

Tốt nhất của cả hai thế giới.

+0

Cảm ơn! Tuy nhiên, một cách khác để làm điều đó. –

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