Wir haben also eine Schnittstelle wie diese
/// <summary>
/// Interface for classes capable of creating foos
/// </summary>
public interface ICreatesFoo
{
/// <summary>
/// Creates foos
/// </summary>
void Create(Foo foo);
/// <summary>
/// Does Bar stuff
/// </summary>
void Bar();
}
Kürzlich haben wir eine Dokumentationsstory gespielt, in der es darum ging, wie oben beschrieben, eine ausreichende Menge an XML-Dokumentation zu generieren und sicherzustellen. Dies verursachte jedoch eine Menge Doppelarbeit in der Dokumentation. Beispielimplementierung:
/// <summary>
/// A Foo Creator which is fast
/// </summary>
public class FastFooCreator : ICreatesFoo
{
/// <summary>
/// Creates foos
/// </summary>
public void Create(Foo foo)
{
//insert code here
}
/// <summary>
/// Does Bar stuff
/// </summary>
public void Bar()
{
//code here
}
}
Wie Sie sehen können, ist die Methodendokumentation ein direkter Rip von der Oberfläche.
Die große Frage ist, ist das eine schlechte Sache? Mein Bauch sagt mir ja wegen der Vervielfältigung, aber vielleicht auch nicht?
Wir haben auch eine ähnliche Vervielfältigung der Dokumentation mit override
Funktionen und virtual
Funktionen.
Ist das schlecht und sollte vermieden werden oder nicht? Lohnt es sich überhaupt noch?
Antworten:
Im Allgemeinen würde ich den Methoden der Implementierung nur dann eine neue Dokumentation hinzufügen, wenn an dieser Implementierung etwas Besonderes zu erwähnen ist.
In javadoc können Sie Verknüpfungen zu anderen Methoden herstellen, sodass Sie in der Implementierung lediglich eine Verknüpfung zur Methodendokumentation in der Schnittstelle erstellen können. Ich denke, so soll es in .Net gemacht werden (basierend auf meiner Lektüre der Online-Dokumentation, nicht meiner eigenen Erfahrung):
Die Dokumentation zum
<see/>
Element: http://msdn.microsoft.com/en-us/library/acd0tfbe.aspxquelle
Collection<T>
und möchte derenCount
Eigenschaft XML-Dokumente überschreiben .