Tôi nên bao gồm những gì trong tiêu đề tài liệu lớp học của tôi


13

Tôi đang tìm định dạng tài liệu lớp thông tin cho các lớp Thực thể, Logic nghiệp vụ và Truy cập dữ liệu của tôi.

Tôi tìm thấy sau hai định dạng từ đây

Định dạng 1

///-----------------------------------------------------------------
///   Namespace:      <Class Namespace>
///   Class:          <Class Name>
///   Description:    <Description>
///   Author:         <Author>                    Date: <DateTime>
///   Notes:          <Notes>
///   Revision History:
///   Name:           Date:        Description:
///-----------------------------------------------------------------

Định dạng 2

// ===============================
// AUTHOR     :
// CREATE DATE     :
// PURPOSE     :
// SPECIAL NOTES:
// ===============================
// Change History:
//
//==================================

Tôi cảm thấy sau đây là những yếu tố cơ bản

  • Tác giả
  • ngày tạo ra
  • Sự miêu tả
  • Lịch sử sửa đổi

vì tên không gian và tên lớp sẽ vẫn ở đó.

Xin vui lòng cho tôi biết suy nghĩ của bạn, định dạng nào được khuyến nghị và liệu có một cách viết lịch sử sửa đổi tiêu chuẩn?


8
Theo tôi, lịch sử sửa đổi nếu bạn đang sử dụng một số hình thức VCS thì tôi sẽ quan tâm đến tôi. Bằng cách đặt nó ở đây, nó sẽ thêm một địa điểm khác mà bạn cần nhớ vào tài liệu, tại sao không để VCS làm điều đó cho bạn và giữ tài liệu mã của bạn ngắn gọn nhất có thể.
Chris

5
Tác giả và ngày tạo cũng được xử lý bởi kiểm soát nguồn. Tất cả bạn cần là một mô tả.
Mike Seymour

Câu trả lời:


26

Hầu hết các thông tin bạn đề xuất sẽ được tìm thấy trong kho lưu trữ nguồn.

Điều duy nhất bạn thực sự cần là phần mục đích, trong đó nói rằng lớp học ở đó để làm gì.

Sẽ thật tẻ nhạt khi nhìn vào kho lưu trữ mỗi khi bạn muốn biết các thông tin khác? Tôi sẽ nói không. Bạn có thường xuyên quan tâm ai là tác giả gốc? Hoặc khi tập tin được tạo lần đầu tiên? Các plugin (như Ankh SVN cho Visual Studio) thường cho phép bạn nhấp chuột phải vào tệp hiện tại của bạn và xem nhật ký kho lưu trữ cho tệp, vì vậy sẽ không quá rắc rối khi thực sự thấy thông tin này.

Ngoài ra, nếu bạn lưu trữ lịch sử phiên bản trong một bình luận, bình luận này cần được duy trì. Vì vậy, theo thời gian có một cơ hội nó có thể nói dối bạn. Kho lưu trữ mã nguồn tự động giữ dữ liệu lịch sử này, do đó không cần bảo trì đó và sẽ chính xác.


14

Có lớp mô tả, phương thức và tên biến . Điều này sẽ loại bỏ sự cần thiết cho các ý kiến ​​như mục đích và mô tả. Đôi khi chúng tôi nghĩ rằng tên phương thức càng ngắn càng tốt. Ngược lại, tạo một tên phương thức miễn là bạn muốn miễn là nó mô tả rõ ràng mục đích của nó. Chỉ có ghi chú là hoàn toàn quan trọng và giúp hiểu mã theo một số cách cụ thể. Khi thực hiện thay đổi mã, lập trình viên thường quên cập nhật ý kiến. Bạn có thể kết thúc với các bình luận và mã không đồng bộ và gây hại nhiều hơn là tốt.

Đọc bài viết này của Jeff Atwood - Mã hóa mà không cần bình luận .


Tôi sẽ bình chọn câu trả lời này +100 nếu tôi có thể.
Chris Holmes

5

Tôi sử dụng các thẻ tiêu chuẩn để tạo tài liệu. Không hơn không kém. Xem tại đây

Tôi không bao giờ đưa thông tin không thuộc về lớp. Tác giả, dữ liệu, bản sửa đổi là dữ liệu để lưu trữ trên Hệ thống kiểm soát phiên bản.

Hai định dạng được trình bày là vô dụng để tạo tài liệu và có lỗi lớn nhất về nhận xét, chúng liệt kê lịch sử sửa đổi.


3

Phần lớn thông tin này có thể được thêm vào bởi kho lưu trữ kiểm soát nguồn của bạn, khiến bạn thực sự chỉ có mô tả, mô tả chính xác phạm vi và hành vi của lớp. Tôi khuyên bạn nên xem một số Javadoc cho JDK Java làm ví dụ.


@karianna - Vì vậy, bạn đề nghị để lại mọi thứ trừ mô tả lớp vào kho lưu trữ kiểm soát nguồn; nhưng, sẽ rất tẻ nhạt khi xem nó từ nhật ký kho lưu trữ mỗi lần. Và nếu tôi muốn tạo tệp tài liệu (như .chm hoặc sand lâu đài) thì sao?
CoderHawk

@Sandy Bạn sẽ có thể đặt một số từ khóa nhất định trong tiêu đề nhận xét mã mà kho lưu trữ kiểm soát nguồn của bạn sẽ cập nhật mỗi khi bạn đăng nhập. Nó phụ thuộc vào ngôn ngữ bạn đang mã hóa và kiểm soát nguồn mà bạn đang sử dụng. Bạn đang dùng gì? :)
Martijn Verburg

@karianna - Tôi đang sử dụng Subversion; hy vọng thảo luận về công nghệ / lập trình nhỏ sẽ không đóng cửa! :-) Xin vui lòng cho tôi biết liệu tôi có cần đăng câu hỏi trong SO hỏi làm thế nào để hợp nhất nhận xét nhật ký với lớp cụ thể không? :-)
CoderHawk

Bạn có thể sử dụng $ Id: $ và $ URL: $, có thể là tùy chọn, tôi quên. Hy vọng rằng các lãnh chúa SO sẽ không giết chúng tôi vì tội báng bổ của chúng tôi
Martijn Verburg

3

Tất cả mọi thứ trong danh sách đó là không cần thiết. Kiểm soát nguồn của bạn sẽ xử lý gần như tất cả mọi thứ và những gì nó không bao gồm được thực hiện bằng các quy ước đặt tên tốt.

Nếu tôi phải đọc "Mô tả" của bạn để tìm hiểu xem lớp của bạn đang làm gì thì (a) bạn đặt tên kém hoặc (b) bạn đã viết một lớp xấu đang làm quá nhiều (SRP).


2

Tôi đã chơi xung quanh với việc thay đổi các mẫu tiêu đề của mình, như những người khác chỉ ra, rất nhiều thông tin này có thể được tìm thấy trong kho lưu trữ và cho đến nay các lĩnh vực lớn mà tôi đang tìm cách lưu giữ như sau:

  • Mô tả - Những gì đang được thực hiện bởi mã.
  • Ghi chú - Bất cứ điều gì cần biết về mã không dễ dàng bắt nguồn từ các nhận xét trong chính mã.
  • Tài liệu tham khảo - Bất kỳ tài liệu tham khảo nào mà mã phụ thuộc vào đó không được làm rõ mặc dù việc sử dụng includehoặc các câu lệnh tương tự.

Một mục cũng có thể hữu ích để bao gồm là một phần trên Từ khóa Trong khi bạn có thể thực hiện tìm kiếm tên hàm, lớp, struct, v.v., có thể có một số từ khóa mà các tên khác trong tệp không làm rõ. Hoặc đối với mã cũ, tài liệu kém, nó có thể là bước đầu tiên trong tài liệu mã để bảo trì.


1

Hầu hết các câu trả lời khác tôi đọc cho đến nay đều cho rằng chỉ có một kho lưu trữ luôn có sẵn

Vì sourcecode có thể mất kết nối đến kho lưu trữ (tức là nếu được sao chép), tài liệu lớp của tôi sẽ như sau:

  • class documentation header (= khối nhận xét ở đầu tệp) chỉ chứa thông tin pháp lý bắt buộc (nghĩa là bản quyền của xyz theo giấy phép gpl)
  • mọi thứ mà nhà phát triển sử dụng lớp nên biết nên đi vào lớp-java-doc-bình luận (hoặc tương đương .net của nó) để các ide-s hiện đại có thể hiển thị thông tin này dưới dạng thông tin công cụ sử dụng lớp mã nguồn.

Bạn cũng có thể thêm số vé cho lỗi hoặc yêu cầu tính năng để bạn có thể có một số manh mối trong đó / khi / tại sao lớp được tạo (nếu bạn may mắn đủ để bạn vẫn có thể truy cập vé sau một vài năm).

Khi nuôi ong yêu cầu sửa chữa các vấn đề trong các chương trình kế thừa nguồn đóng cũ, số vé ở đó khá có giá trị để tôi hiểu các yêu cầu ban đầu của mã.

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.