Cách giữ các ví dụ mã trong javadocs cập nhật


9

Tôi đang làm việc trên một thư viện nhỏ cung cấp việc triển khai các số liệu chuỗi cơ bản, nổi tiếng. Chủ yếu là cho giáo dục của riêng tôi. Vì vậy, sự phát triển xảy ra bất cứ khi nào tôi có một chút thời gian rảnh rỗi.

Do đó, tôi đã tự động hóa hầu hết các quy trình để tôi có thể phát hành phiên bản thường xuyên khi tôi làm việc với nó mà không cần quá nhiều nỗ lực. Tuy nhiên, việc duy trì tài liệu Java vẫn là một gánh nặng vì nó bao gồm các ví dụ.

Khi API phát triển, tôi phải kiểm tra lại từng ví dụ một cách thủ công. Có cách nào tốt hơn để làm điều này?

Tôi đã cân nhắc việc chuyển tài liệu và ví dụ vào một dự án riêng (ví dụ Caliper Tutorial ) để nó có thể được tái hiện và biên dịch cùng với mã thông thường. Tuy nhiên, điều đó không di chuyển tài liệu ra khỏi lớp học.

Vì vậy, vâng. Tôi muốn có bánh của tôi và ăn nó quá. : D

 * <h2>Tokenization</h2>
 * 
 * Tokenization cuts up a string into tokens e.g.
 * <code>chilperic ii son of childeric ii</code> is tokenized into
 * <code>[chilperic, ii, son, of,
 * childeric, ii]</code>. Tokenization can also be done repeatedly by tokenizing
 * the individual tokens e.g.
 * <code>[ch,hi,il,il,lp,pe,er,ri,ic, ii, so,on, of, ch,hi,il,ld,de,er,ri,ic, ii]</code>
 * <p>
 * 
 * <pre>
 * <code>
 * {@code
 *  return new StringMetricBuilder()
 *          .with(new SimonWhite<String>())
 *          .tokenize(new Whitespace())
 *          .tokenize(new QGram(2))
 *          .build();
 * }
 * </code>
 * </pre>
 * 
 * <p>

Nếu ở trên nó quá trừu tượng. Đây là một mẫu tài liệu. Hiện tại tôi đang thêm các hàm tạo tĩnh theo lời khuyên của Java hiệu quả, ví dụ như Tokenizers.createQGram(2)trong khi khấu hao phương thức hàm tạo. Mỗi lần tôi làm điều gì đó như thế này, tôi phải cập nhật mã ví dụ ở trên và kiểm tra xem nó có còn hoạt động không.

Câu trả lời:


8

Điều này có thể không trả lời câu hỏi của bạn - tùy thuộc vào mức độ 'yêu cầu' để có những ví dụ này trong tài liệu của bạn.

Có lẽ bạn có thể thực hiện một góc độ khác: Cung cấp các ví dụ trong các bài kiểm tra JUnit của bạn. (Có lẽ ngay cả một gói như com.examples) Vấn đề với mã trong các bình luận là IDE của bạn sẽ bỏ qua nó, đối với hầu hết các phần. Nhưng IDE của bạn sẽ xác nhận mã trong các bài kiểm tra JUnit của bạn. Bằng cách này, bạn đảm bảo các ví dụ mã là 'chính xác' - các thử nghiệm sẽ không được biên dịch hoặc đơn giản là thất bại nếu bạn chưa cập nhật chúng.

Tôi không phải là một trình hướng dẫn với Javadocs, nhưng có thể có một cách để liên kết tài liệu của tệp nguồn của bạn với tệp JUnit với mã ví dụ trong đó. Tôi thực sự sẽ không biết bắt đầu từ đâu về điều này. Một googling cursory cho tôi xem @seethẻ . Tôi đã thử nghiệm nó trong một dự án nhưng chưa thử nghiệm nó trong một javadoc thực tế sau khi nó được tạo.

Điều này chắc chắn sẽ đòi hỏi một chút nghiên cứu trước, nhưng tôi thực sự nghĩ rằng bạn sẽ tốt hơn về lâu dài nếu các ví dụ mã của bạn thực sự được biên dịch.

Là một mục tiêu mở rộng, bạn cũng có thể thêm phạm vi bảo hiểm mã khi chạy các ví dụ JUnit của mình. Bằng cách này, bạn sẽ biết được bao nhiêu cơ sở mã của bạn được bao phủ bởi các ví dụ của bạn.


Khả năng kiểm tra đơn vị đã cho tôi thuyết phục. Tôi sẽ tách tài liệu thành một mô tả chức năng đơn giản và chuyển các ví dụ vào một dự án hướng dẫn. Liên kết cứng đến một tệp trên github có thể hơi khó xử nhưng đó là một sự đánh đổi chấp nhận được.
MP Korstanje
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.