O estilo dos comentários afeta a maneira como os leitores entendem o código?

8

Esta pergunta está me obcecando nos últimos 2 meses.

Há algum tempo, um amigo que é um grande programador me deu alguns exemplos de códigos e, pela primeira vez, notei um estilo único de organização de comentários. Ele se esforçou para criar comentários de uma maneira que me deixasse mais confortável com o próprio código. Por exemplo:

/////////////////////////////////////////////                                                   //                                             //
//  This code prints a basic "Hello world" //
// message to the console screen. You can  //
// change the text in the brackets.        //
//                                         //
/////////////////////////////////////////////

#include <iostream>

int main() {
  cout << "Hello world";

}

quando ele poderia simplesmente escrever

/* This code prints a basic "Hello world" message to the console, change text in brackets */

 #include <iostream>

int main() {
  cout << "Hello world";

}

Este tipo de exemplo apenas em uma escala maior. Acho isso um pouco improdutivo em situações profissionais, mas em uma situação de aprendizado, parece ideal.

A questão aqui é, se o estilo do comentário afeta o modo como o leitor entende o código. Na minha opinião pessoal, a opção 1 é mais bonita aos olhos e mais fácil de seguir do que a 2. A maneira como você comenta o código afeta a capacidade de compreender seu código ou é apenas desperdício de tempo e espaço?

Bugster
fonte
Ambos os exemplos são bons exemplos de estilos de comentários ruins para código profissional. As caixas de comentários não devem ser usadas e os comentários em bloco também devem ser evitados. Os educadores parecem amar as caixas de comentários.
Ryathal

Respostas:

5

sim

O layout de um programa da perspectiva de espaço em branco e comentários terá um grande impacto sobre a capacidade de um desenvolvedor ler seu código.

Prettier to the eye and more easy to follow são subjetivos e não serão os mesmos para todos os programadores.

Dito isto, alguns desenvolvedores preferem ver mais código na tela ao mesmo tempo, enquanto outros preferem ter mais espaço em branco / comentários.

No final do dia, você ficará mais confortável lendo o código que está acostumado a ler.

Tio Bob Martin, autor do Clean Code, argumenta que os comentários são freqüentemente usados ​​para desculpar códigos incorretos e devem ser evitados sempre que possível. Em vez disso, seu próprio código deve ser legível e organizado bem o suficiente para permitir que outro desenvolvedor o pegue e comece a trabalhar facilmente.

Robert Greiner
fonte
'Mais fácil de seguir' é na verdade uma das coisas mais fáceis de medir e quantificar. Você pode, por exemplo, apresentar grupos aleatórios de programadores competentes com uma amostra de código que contém um erro e quanto tempo leva para encontrá-lo (você primeiro precisa estabelecer uma linha de base, apresentando a ambos os grupos um lote de código idêntico amostras, o que é ainda mais importante se os seus grupos forem pequenos ou se o seu método de randomização estiver abaixo do ideal). Outras tarefas podem incluir prever a entrada, determinar a complexidade algorítmica ou adivinhar o que o código faz (estilo de múltipla escolha).
21612 tdammers #
1
"comentários são freqüentemente usados ​​para desculpar códigos incorretos e devem ser evitados sempre que possível" me parece um lixo total. O que ele deveria ter dito é "código ruim deve ser evitado sempre que possível".
Sardathrion - contra abuso no SE
1
@Sardathrion Ele não dizer para evitar mau código. De fato, todo o seu livro é sobre como evitar escrever códigos incorretos. Ele também diz para evitar a prática comum de recorrer a comentários para mascarar códigos ruins quando você poderia escrever um código melhor.
Eric King
@ EricKing: Eu não li o livro, então não posso comentar sobre o que o autor realmente disse. No entanto, o resumo de Robert Greiner diz " Comentários são usados ​​para mascarar códigos incorretos, portanto, os comentários devem ser evitados ". Acredito que seja um lixo total quem quer que diga. Usar comentários para mascarar códigos incorretos é uma prática ruim. Não comentar o seu código é uma prática ruim. Um bom código e bons comentários são boas práticas. Robert Greiner: você poderia esclarecer o que queria dizer?
Sardathrion - contra abuso do SE
1
@ Sardathrion você me citou mal. Eu pensava da mesma maneira que você quando comecei a programar, e a verdade é que os comentários não são tudo o que deveriam ser. Sugiro verificar o Código Limpo se você estiver interessado em aprender mais sobre como escrever um ótimo código. Isso realmente ajudou a moldar a minha maneira de pensar sobre programação e acho que ajudaria qualquer um que a ler a se tornar um programador melhor.
Robert Greiner
7

Acredito que a formatação do código pode fazer uma enorme diferença na legibilidade, mas a maioria dos códigos bem formatados (ou mesmo apenas recuados de forma consistente) me dá uma sensação calorosa e confusa de que o escritor realmente tomou um pouco de cuidado, em vez de apenas cortar colando quaisquer trechos que ele ou ela tenha em mãos.

Não tenho tanta certeza sobre comentários. Código que eu escrevo, acredito firmemente que o comentário ajuda. Por outro lado, se eu quiser entender o código "corporativo" que encontro no trabalho, costumo excluir todos os comentários, reformatar o código para ter um recuo consistente e imprimi-lo no papel para ler em detalhes, marcando os blocos básicos com lápis etc.

Essa contradição (eu: bons comentários; todo mundo: comentários enganosos) me faz pensar que os comentários são superestimados. Até o meu.

Bruce Ediger
fonte
1
Isto merece uma +1 apenas para o último parágrafo sozinho :-)
Jörg W Mittag
Eu costumava desejar que o nosso último programador usasse comentários. Então encontrei a parte do código em que ele deixou comentários. Agora, desejo que o nosso último programador não use comentários.
Ben Brocka
6

Sim, comentar estilo afeta a legibilidade (como não pode?), Mas eu diria que o exemplo que você deu é um estilo muito ruim. Formatação excessiva é apenas isso: excessiva.

Escrever bons comentários é uma habilidade a ser praticada e refinada, assim como escrever código.

Bryan Oakley
fonte
2

IMHO, o primeiro é adequado para comentar o que uma classe faz ou no início de um arquivo de origem; o segundo é adequado para descrever o que o seguinte bloco de código faz. para métodos, eu usaria

//////////////////////////////////////////////////////////////////////
This code prints a basic "Hello world" message to the console screen. You can change the text in the brackets. 

Além de outras ótimas respostas, acho que a consistência no estilo dos comentários é outro ponto. Se você usar diferentes tipos de estilos de comentários para o mesmo tipo de tarefas que prejudicariam bastante a legibilidade do seu código.

do utilizador
fonte
1

O exemplo que você dá é um pouco extremo, mas sim, os comentários têm uma função muito importante.

O escritor do código tem um modelo mental do que ele precisa fazer. Os comentários servem para

  • comunicar ao leitor o que é esse modelo mental e
  • expressar o mapeamento entre o modelo mental e como o código o implementa.

Dessa forma, se os requisitos forem alterados, é mais provável que as alterações correspondentes no código possam ser feitas corretamente, seja pelo autor original ou por qualquer pessoa que aparecer posteriormente.

Também é bom tentar escrever o código de tal maneira que ele se explique, mas que raramente seja 100% bem-sucedido, portanto os comentários são necessários.

Mike Dunlavey
fonte
0

Uma resposta rápida para a pergunta é "Sim". Comentários e estilo de comentário afetam claramente a legibilidade e a compreensão do código. Essa é a ideia geral, mas a qualidade das descrições dos comentários e seu design é puramente subjetiva.

Você já tentou ler o código e os comentários de outra pessoa? A maioria dos programadores escreve código e comentários com base em seu próprio estilo e nível de conhecimento. Ler os comentários e o código é como tentar entrar em sua mente e seguir suas práticas.

Uma maneira de evitar esse problema é usar um “guia de princípio / estilo” básico que descreva brevemente as diretrizes básicas para estrutura, finalidade e comentários do código. Este guia deve ser seguido consistentemente pelas pessoas que escrevem o código e todos os demais que possam ler o código e possivelmente estendê-lo.

Chris Mylonas
fonte
0

Estilisticamente, eu usaria duas formas de comentário (para C ++ / Java)

/**
 * Multi-line comment
 */

ou

// Single-line comment

um IDE com realce de sintaxe é suficiente para chamar sua atenção para o comentário; você não precisa gostar da formatação.

Garrett Hall
fonte
0

Sim, o estilo de comentar certamente afeta a legibilidade. Qualquer estilo de comentário que permita identificar comentários rapidamente, para que eu possa evitar lê-los, ajuda tremendamente quando o que realmente estou tentando fazer é ler o código .

Ainda melhor é um estilo de comentário de código que me permite usar o IDE para minimizar completamente os comentários, de modo que não precise gastar energia para ler em torno deles.

Eric King
fonte