Làm thế nào để tham khảo các lĩnh vực cụ thể của mã trong tài liệu?


9

Tôi sắp rời khỏi một dự án, và trước khi tôi đi, sếp của tôi đã yêu cầu tôi viết mã tài liệu (Tôi chưa làm tài liệu tốt lắm). Đó không phải là một vấn đề lớn, dự án không quá phức tạp. Nhưng tôi đang tìm địa điểm trong tài liệu của mình, nơi tôi muốn nói, "Lưu ý trên dòng XYZ rằng điều tương tự xảy ra."

Trong trường hợp này, không có nghĩa gì khi đề cập đến một số dòng cụ thể, vì việc thêm hoặc xóa một dòng mã sẽ ngay lập tức lỗi thời tài liệu. Có một số cách thực hành tốt nhất để tham chiếu đến một dòng mã cụ thể mà không đề cập đến nó theo số dòng?

Tôi đã xem xét việc xả rác mã với các ý kiến ​​như:

/* linetag 38FECD4F */

Trong đó "38FECD4F" là một số thẻ duy nhất cho dòng cụ thể đó. Sau đó, tôi có thể đưa vào tài liệu, "Trên dòng được gắn thẻ '38FECD4F', lưu ý rằng điều tương tự xảy ra."

Còn ý tưởng nào khác không? Tôi cảm thấy nói chung là tốt hơn để ghi lại toàn bộ các đơn vị mã, thay vì các phần cụ thể của chúng, nhưng trong trường hợp của dự án cụ thể này, có các chuỗi mã thủ tục dài, chưa bao giờ được tái cấu trúc thành các đơn vị nhỏ hơn.


Bạn đang đề cập đến các vị trí cụ thể từ các phương pháp kèm theo hoặc từ các nhận xét tóm tắt hàng đầu? Trong trường hợp sau, bạn có thể sử dụng kiểu JavaDoc "#".
arin

Tôi thường đề cập đến tệp và phương thức ("Thông báo trong tệp ABC trong phương thức XYZ xảy ra như vậy") nhưng tôi tò mò muốn xem câu trả lời nào xuất hiện.
Michael Itzoe

7
Sẽ không có ích hơn trong những trường hợp này nếu chỉ đưa các bình luận vào mã thực tế?
Robert Harvey

Có ai đó trong nhóm có thể xem lại tài liệu của bạn và cung cấp phản hồi không?
gnat

Có nhu cầu này, nghe có vẻ như có tác dụng phụ trong các phương pháp khác mà bạn đang sử dụng rõ ràng.
Michael Shaw

Câu trả lời:


1

Nếu tôi hiểu đúng, bạn dường như có một vấn đề duy nhất. Những gì bạn muốn làm nó đề cập đến một dòng mã cụ thể trong các bình luận được viết trong một số phần khác của cùng một mã.

Tôi thường không bắt gặp những tình huống như vậy khi tôi cần tham khảo một dòng ngoại lệ # trong một số nhận xét được viết ở nơi khác - nói chung mã được ghi lại ngay tại nơi nó được viết.

Tôi không biết bất kỳ cách tiêu chuẩn nào để làm điều này - nhưng ngoài đỉnh đầu của tôi ...

Bạn có thể tham khảo các phần của mã thông qua ngữ cảnh của nó - tức là những thứ xung quanh chúng.

Lưu ý ở trên định nghĩa của func1 () rằng điều tương tự xảy ra

Lưu ý rằng ngay sau vòng lặp for lặp lại trên recordXYZItr, chúng ta cũng đang gọi phương thức gc ()

Thận trọng: Trong phương thức yahoo (), ngay sau khi khai báo biến PQ, chúng tôi cũng hoán đổi các giá trị trong A và B, do đó, đối tượng mapABC cũng cần được sao chép

Một cách khác là thêm các thẻ mô tả. Thay vì một cái gì đó như 38FECD4F, bạn có thể nói Some XYZ implementationhoặc BUGFIX 1474, và sau đó đề cập đến điều đó ở một nơi khác.


Cảm ơn vì bạn đã phản hồi! Tôi nghĩ rằng "mô tả bối cảnh của nó" có vẻ như là lựa chọn tốt nhất cho tôi. Cảm ơn một lần nữa.
loneboat

2
Có một vấn đề duy nhất khá thường xuyên có nghĩa là bạn đang làm sai điều gì đó.
Thijs van Điền

2
@ThijsvanDien: Tin tôi đi, chúng tôi đang làm RẤT NHIỀU thứ sai cách ở đây! ;-)
loneboat

3

Nó phụ thuộc rất nhiều vào cách mã được viết và tôi hiểu rằng nó có thể tạo ra một loạt các phép tái cấu trúc mà bạn không ở đây để làm.

Nhưng ... nếu bạn cần tham khảo một dòng mã cụ thể với tư cách là một đơn vị, thì điều đó có nghĩa là một số mã đại diện cho một hoạt động trừu tượng, và do đó có thể được tái cấu trúc theo phương thức / chức năng của chính nó? Khi đã ở trong một phương thức, nó khá dễ, chỉ cần tham khảo namespace.class.methodTất nhiên điều đó có nghĩa là có các phương thức rất nhỏ, dài khoảng 5-10 dòng hoặc thậm chí ít hơn. Với Doxygen, bạn có thể đặt tài liệu lên trên phương thức và nó sẽ luôn đồng bộ với tên của phương thức / lớp / không gian tên.


1
Câu trả lời này phải là người chiến thắng, ngoại trừ điểm ban đầu của OP rằng anh ấy rời khỏi dự án và có lẽ có giới hạn thời gian và có lẽ không nên đưa ra thay đổi trên đường ra. Nhưng hoàn toàn chính xác - nếu một cái gì đó đủ phức tạp để đề cập đến bên ngoài, hãy đặt nó vào đơn vị mã được đặt tên riêng của nó.
Ross Patterson

2

Tôi đề nghị bạn thực hiện một cách tiếp cận khác, ngoài việc liên kết từ một số tài liệu bên ngoài mã sang mã:

  1. thêm ý kiến ​​vào mã của bạn, sử dụng một công cụ như doxygen .

  2. nếu cần phải giải thích một số khái niệm chi tiết hơn là phù hợp trong tài liệu của mã (mới được tạo), bạn luôn có thể tạo một tài liệu riêng và liên kết đến đó.

Bằng cách này, bạn có thể dễ dàng tạo tài liệu dưới dạng trang web hoặc dưới dạng PDF và nó phù hợp với mã. Sử dụng một số thẻ nhân tạo sẽ trở nên rất khó để duy trì và thậm chí khó hiểu hơn đối với người không quen.

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.