Então nós temos uma interface assim
/// <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();
}
Recentemente, reproduzimos uma história de documentação que envolvia a geração e a garantia de que havia muita documentação XML como acima. Isso causou muita duplicação de documentação. Exemplo de implementação:
/// <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
}
}
Como você pode ver, a documentação do método é uma cópia direta da interface.
A grande questão é: isso é ruim? Meu intestino me diz que sim por causa da duplicação, mas talvez não?
Além disso, temos outra duplicação de documentação semelhante com override
funções e virtual
funções.
Isso é ruim e deve ser evitado ou não? Vale a pena mesmo?