Interessante, que a legibilidade aplicada à linguagem natural é medida pela velocidade da leitura e compreensão. Eu acho que uma regra simples pode realmente ser adotada; se um comentário em código específico não melhorar essa propriedade, pode ser evitado .
Por que comentários?
Embora o comentário do código seja uma forma de documentação incorporada, existem várias maneiras nas linguagens de programação de ponta para evitar programação supérflua "super documentada" (de código significativo) usando elementos da própria linguagem. Também é uma má idéia transformar código em listagens do livro de programação, em que declarações individuais são literalmente explicadas de maneira quase tautológica (lembre-se do exemplo "/ * incremente i em 1 * /" nas respostas já fornecidas), tornando esses comentários relevantes apenas para programadores inexperientes com o idioma.
No entanto, é a intenção de tentar comentar o código "sub-documentado" (mas sem sentido) que é verdadeiramente "a fonte de todo o mal". A própria existência de código "sub-documentado" é um sinal ruim - ou é uma bagunça não estruturada ou um truque maluco de um propósito místico perdido. Obviamente, o valor desse código é questionável pelo menos. Infelizmente, sempre existem exemplos, quando é realmente melhor introduzir um comentário em uma seção de linhas de código formatadas (visualmente agrupadas) do que envolvê-lo em uma nova sub-rotina (lembre-se da "consistência tola" que "é o hobgoblin das pequenas mentes") .
Legibilidade do código! = Comentários de código
Código legível não requer anotações por comentários. Em cada local específico do código, há sempre o contexto de uma tarefa que esse código específico deve realizar. Se falta um objetivo e / ou código faz algo misterioso = evite-o a todo custo. Não permita que hacks estranhos preencham seu código - é um resultado direto da combinação de tecnologias de buggy com falta de tempo / interesse para entender as bases. Evite código místico no seu projeto!
Por outro lado, programa legível = código + documentação pode conter várias seções legítimas de comentários, por exemplo, para facilitar a geração de documentação "comentários para API".
Siga os padrões de estilo de código
Curiosamente, a questão não é sobre por que comentar código, é sobre trabalho em equipe - como produzir código em estilo altamente sincronizado (que todo mundo pode ler / entender). Você está seguindo algum padrão de estilo de código em sua empresa? Seu principal objetivo é evitar escrever código que exija refatoração, seja "pessoal" e "subjetivamente" ambíguo demais. Então, eu acho que, se alguém vê a necessidade de usar o estilo de código, há várias ferramentas importantes para implementá-lo corretamente - começando com a educação das pessoas e terminando com a automação para o controle de qualidade do código (numerosos fiapos, etc.) e (revisão) sistemas de revisão de código integrados ao controle).
Torne-se um evangelista de legibilidade de código
Se você concorda que o código é lido com mais frequência do que está escrito. Se uma expressão clara de idéias e pensamentos é claramente importante para você, não importa qual idioma é usado para se comunicar (matemática, código de máquina ou inglês antigo) .. Se sua missão é erradicar a maneira maçante e feia do pensamento alternativo .. (desculpe , o último é de outro "manifesto") .. faça perguntas, inicie discussões, comece a espalhar livros instigantes sobre limpeza de código (provavelmente não apenas algo semelhante aos padrões de design de Beck, mas mais como já mencionado por RC Martin ) que abordam ambiguidade em programação. Mais adiante, uma passagem de ideias-chave (citada no livro de O'Reilly sobre legibilidade)
- Simplifique a nomeação, comentários e formatação com dicas que se aplicam a todas as linhas de código
- Refine os loops, lógicas e variáveis do seu programa para reduzir a complexidade e a confusão
- Atacar problemas no nível da função, como reorganizar blocos de código para executar uma tarefa por vez
- Escreva um código de teste eficaz que seja completo e conciso, além de legível
Cortando "comentando", ainda resta muito (acho que escrever código que não precisa de comentários é um ótimo exercício!). Nomear identificadores semanticamente significativos é um bom começo. Em seguida, estruture seu código agrupando operações conectadas logicamente em funções e classes. E assim por diante. Um programador melhor é um escritor melhor (é claro, assumindo outras habilidades técnicas fornecidas).