Existe um guia definitivo para escrever comentários de código, destinado a desenvolvedores iniciantes?
Idealmente, cobriria quando os comentários deveriam (e não deveriam) ser usados e quais comentários deveriam conter.
Não comente o que está fazendo, mas por que está fazendo.
O WHAT é tratado por código limpo, legível e simples, com escolha adequada de nomes de variáveis para suportá-lo. Os comentários mostram uma estrutura de nível superior ao código que não pode ser (ou é difícil de mostrar) pelo próprio código.
chega perto, mas é um pouco conciso para programadores inexperientes (uma expansão nisso com vários exemplos e casos extremos seria excelente, eu acho).
Atualização : além das respostas aqui, acho que essa resposta a outra pergunta é altamente relevante.
fonte
Respostas:
Você deve estar ciente da maior fraqueza dos comentários: eles ficam obsoletos. Ou seja, à medida que o código muda, os desenvolvedores raramente atualizam os comentários para permanecer sincronizados com o código. Isso significa que você nunca pode confiar neles e ainda acaba lendo o código. Por esse motivo, seu código deve ser auto-documentado. Você deve escolher seus nomes de função e variável de forma que o código pareça uma prosa.
Portanto, não documente o que o código está fazendo. O código de auto-documentação deve cuidar disso. Documente POR QUE você está fazendo isso. Os WHYs geralmente são relacionados a regras de negócios ou arquitetura e não mudam frequentemente e ficam obsoletos o mais rápido possível no WHATs. Documentar casos extremos. Documentar exceções. Decisões de design de documentos. E o mais importante, documente as decisões de design que você considerou, mas decidiu não implementar (e documente POR QUE você decidiu não usá-las).
fonte
Você deve ler o livro de código limpo de Robert C. Martin . Explica bem que, se você precisar de comentários, provavelmente não está codificando corretamente. Idealmente, seu código deve ser "com comentários próprios". O livro Clean Coder explica como fazer isso, para que os comentários não sejam necessários e descreveu bem como fazer comentários em situações em que é necessário. (Como explicar uma fórmula matemática complexa)
fonte
O Code Complete, como mencionado, possui várias diretrizes para escrever comentários. Em resumo, é PDL e pode ser resumido como:
Descreva sua intenção, não o que o código está fazendo. Evite descrever os detalhes da implementação, a menos que esteja usando algum truque ou implementações personalizadas. Por exemplo, usando bits de deslocamento para dividir, usando aritmética de ponteiro para acessar membros da classe ou usando um alocador de memória personalizado para alguns objetos em pool.
Escreva o pseudo-código (isto é, os comentários) primeiro e depois o código real depois de terminar de descrever sua rotina / método / função. A linguagem usada é de alto nível, mas específica, portanto pode ser bastante detalhada
Tenha uma idéia do que seu código está fazendo antes mesmo de escrevê-lo
Tenha comentários o mais próximo possível do código real
O objetivo é evitar comentários longos e não relacionados que possam estar desatualizados, mas ter comentários refletindo a intenção e o objetivo do código. Usar um pseudo-código de alto nível também ajuda a esclarecer seu pensamento antes de escrever a implementação.
Há um link no GameDev.net [que explica PDL] [1], caso você não queira rastrear o livro.
fonte
showWindowOnTop(window)
sempre será melhor do que um comentário da mesma natureza, tudo isso está desatualizado e é um péssimo conselho em 2012. 1) Nomes de funções / métodos descrevem a intenção, 2) pseudo-código é um exercício oco com cadeias de ferramentas modernas 3) testes dizer-lhe o que o código é suposto fazer antes de escrevê-lo, 4) código bem nomeado é melhor do que comentários que não correspondem código mal chamadoEu apenas sigo um princípio simples e comum: seus comentários não devem dizer o que o código está fazendo, mas por que ele está fazendo. Artigo e livro de Martin Fowler e livro sobre re-fatoração e código O livro completo tem muitas informações, mas lamentavelmente não está de forma resumida para meu conhecimento.
fonte
Minha sugestão seria escrever um código sem qualquer comentário e depois sair dele. Volte em um ano e leia. A parte que você não entende facilmente é a parte que deveria ter comentado.
fonte
Eu realmente gosto de como Evan Todd resume sua visão sobre as únicas categorias de comentários úteis ( citando em seu blog ):
fonte