2009-12-09 28 views
9

Thực hành tốt nhất trong các lớp học và giao diện tài liệu là gì. Giả sử bạn có một lớp cụ thể gọi là Foo, nó xuất phát từ một giao diện có tên là IFoo. Bạn đặt nhận xét của mình cho phương pháp của mình ở đâu? Bạn có nhân đôi ý kiến ​​của mình trên Giao diện cũng như lớp bê tông không?Mã nhận xét: Bạn có đặt nhận xét mã của bạn trên Giao diện hoặc trên các lớp Bê tông hoặc cả hai?

Dưới đây là một ví dụ trong đó ý kiến ​​được nhân đôi:

public class Foo : IFoo 
{ 
    /// <summary> 
    /// This function does something 
    /// </summary>   
    public void DoSomething() 
    { 
    } 
} 

public interface IFoo 
{ 
    /// <summary> 
    /// This function does something 
    /// </summary>   
    void DoSomething(); 
} 

Trả lời

18

tôi sẽ đưa ý kiến ​​trên cả hai.

Trên giao diện tôi sẽ nhận xét về ý định đằng sau thành viên và cách sử dụng giao diện.

Khi triển khai, tôi sẽ nhận xét về lý do thực hiện cụ thể.

+3

+1 ... và nếu bạn đang sử dụng GhostDoc, bạn có thể dễ dàng nhận các nhận xét giao diện được sao chép từ các thành viên giao diện đến triển khai cụ thể của chúng. – Groo

4

Tôi thường đặt chúng trên cả hai, tuy nhiên, họ không nói điều tương tự. Nhận xét của giao diện nên mô tả mục đích trừu tượng của phương thức/giao diện này. Trong khi nhận xét cụ thể sẽ nói về các chi tiết cụ thể của phương thức/lớp trong bối cảnh mục đích của giao diện.

3

Tôi đặt chúng trong cả hai, nhưng nó là một nỗi đau giữ chúng đồng bộ, khi nghi ngờ tôi chỉ đặt chúng trên giao diện.

Tôi làm điều này vì tôi thích các tooltip khi sử dụng mã này, mà nên hầu như luôn luôn được sử dụng giao diện ...

1

Tôi thực sự không sử dụng chúng. Thay vào đó, tôi đảm bảo cấu trúc mã và đặt tên cho tất cả các phương thức và biến theo cách rõ ràng những gì chúng làm mà không có nhận xét. Vấn đề với ý kiến ​​là họ không biên dịch và không thực hiện và không được kiểm tra bởi các bài kiểm tra đơn vị của bạn, do đó, nó khá nhiều không thể giữ chúng trong đồng bộ với mã.

+0

Những nhận xét này là nhiều hơn cho việc sử dụng với Intellisence sau đó cho sự hiểu biết mã. Tôi đồng ý rằng chúng khó duy trì hơn nhưng chúng có thể rất hữu ích để khám phá các API. –

+0

Heah, tôi đoán chúng hữu ích khi bạn đang phát triển API cho ai đó từ một nhóm khác. – Grzenio

1

Chỉ dành cho giao diện. Bởi vì trong trường hợp này tôi không cần phải đồng bộ hóa chúng. IDE của tôi giúp tôi xem các nhận xét giao diện trong các lớp cụ thể. Và trình tạo tài liệu api cũng vậy.

2

Cả hai, nhưng tôi ước tính có chức năng được tích hợp để giữ cho chúng được đồng bộ hóa

3

Mã ví dụ của bạn không sử dụng triển khai giao diện rõ ràng. Các khách hàng của mã của bạn sẽ cần cả hai kể từ khi anh ta có thể gọi phương thức hoặc thông qua một đối tượng lớp hoặc tham chiếu giao diện. Với việc thực hiện giao diện rõ ràng, bạn có thể bỏ qua chú thích phương thức lớp vì máy khách không bao giờ có thể nhìn thấy nó. Điều này giả định rằng bạn đang sử dụng tài liệu XML để tạo ra thông tin IntelliSense.

2

Thẻ <referTo>System. .... </referTo> để liên kết các ý kiến ​​sẽ là lý tưởng

1

Lý tưởng nhất, chỉ có giao diện cần phải được ghi lại, vì nó định nghĩa hợp đồng mà mỗi thực hiện cụ thể cần thực hiện đầy đủ.

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