2012-08-28 13 views
6

Tôi ưu tiên một kiểu chương trình theo nghĩa đen với các nhận xét POD bên cạnh mã mà họ ghi lại. Thật không may này bloats mã, mà không phải là rất Perlish ;-) Cách tốt nhất tôi có thể tìm thấy bằng hiện nay là sử dụng Dist::Zilla với Pod::Weaver như thế:Tôi có thể viết các phương thức tài liệu ngắn gọn như thế nào trong mã Perl?

package Foo; 
#ABSTRACT: Foobar helper module for Foos 

=method foo ($bar, $doz) 

Lorem ipsum hopladi and hoplada. 

=cut 

sub foo { 
    ... 
} 

Người ta có thể tranh luận để loại bỏ dòng trống nhưng điều này cũng làm giảm khả năng đọc . không có cách nào để viết ngắn gọn hơn mà không cần bất kỳ cú pháp lặp đi lặp lại và không cần thiết như thế này:

package Foo; 
#ABSTRACT: Foobar helper module for Foos 

#METHOD: Lorem ipsum hopladi and hoplada. 
sub foo { # $bar, $doz 
    ... 
} 

Và có được điều này mở rộng đến toàn POD:

=head1 NAME 

Foo - Foobar helper module for Foos 

=head1 METHODS 

=head2 foo ($bar, $doz) 

Lorem ipsum hopladi and hoplada. 

Tôi nghĩ rằng nó nên có thể với một Pod :: Plugin Weaver nhưng cố gắng hiểu kiến ​​trúc của Pod :: Weaver kết hợp với Dist :: Zilla và PPI khiến não tôi bị tổn thương :-(

Trả lời

2

Tôi đã sử dụng hai cách triển khai khác nhau (cho dự án Perl) Natural DocsOODoc gần với r của bạn cổ phần. Tôi không đề nghị bất kỳ người nào trong số họ, đơn giản vì tôi không thích tài liệu tự phát không phân biệt ngôn ngữ. Tài liệu tốt đòi hỏi thời gian và nỗ lực, nếu không bạn kết thúc với một bộ tài liệu hướng dẫn là vô dụng.

+0

Cảm ơn. Tôi muốn phân biệt tài liệu dưới hình thức giải thích và ví dụ (thường được tìm thấy trong phần 'MÔ TẢ 'và' SYNOPSIS' trong Perl) và tài liệu về mục đích phương pháp và cú pháp gọi. Trước đây là điều cần thiết cho tài liệu tốt, sau này là chỉ thuận tiện và nó có thể được tự động tạo ra rất tốt. – Jakob

+2

+1 cho tài liệu được tạo tự động có xu hướng vô ích. – tripleee

1

Tôi sẽ bắt đầu bằng cách hỏi tại sao bạn cần báo cáo tài liệu ngắn gọn như vậy?

Tôi đã sử dụng Tài liệu tự nhiên và tôi thực sự thích nó. Kiểu tài liệu của tôi không súc tích nhưng tôi thấy nó có thể đọc được. Ví dụ:

=begin nd 

Check if a document name is available. 

A name is available iff the name is not used by any other document related to the same study 
excepted if it is another version of the same document. 

Params: 
    name  - Proposed document name to be checked : Str. 
    study  - the study related to the document 
    parent  - parent document or undef if none : <Document> 
    current_instance - the curretn document instance in case of an update 


Returns: 
    true iff the proposed name is valid 

Exception: 
    Dies on bad args or errors. 

=cut 

Tài liệu tự nhiên có thể tự động chọn tên hàm hoặc phương thức. Hơn nữa, tôi sử dụng nó để ghi lại các nguồn javascript của tôi và tài liệu toàn cầu, và có thể chèn các liên kết chéo giữa chúng.

+0

Nếu tôi viết tài liệu một cách chi tiết, thì ngắn gọn không quan trọng, nhưng trong một số trường hợp, một câu và một danh sách các tham số là đủ. Tôi chỉ yêu cầu trường hợp này. – Jakob