Eu sempre vi esses comentários serem usados:
function foo() {
...
} // foo
while (...) {
...
} // while
if (...) {
...
} // if
e às vezes até
if (condition) {
...
} // if (condition)
Eu nunca entendi essa prática e, portanto, nunca a apliquei. Se o seu código é tão longo que você precisa saber qual é esse final }
, talvez seja melhor dividi-lo em funções separadas. Além disso, a maioria das ferramentas de desenvolvedores podem saltar para o colchete correspondente. E, finalmente, a última é, para mim, uma clara violação ao princípio DRY; se você alterar a condição, deverá lembrar-se de alterar também o comentário (ou poderá ficar confuso para o mantenedor ou até para você).
Então, por que as pessoas usam isso? Devemos usá-lo ou é uma má prática?
source-code
comments
gablin
fonte
fonte
if(condition): ... else: ... endif;
if ... then ... end if;
while ... loop ... end loop;
procedure Foo is ... end Foo;
. Acho que ajuda na legibilidade (e é verificado pelo compilador, que não são comentários).Respostas:
Eu diria que se o código é tão longo que você não consegue seguir facilmente o seu aparelho, ele precisa ser refatorado para a maioria dos idiomas.
No entanto, em linguagens de modelo (como PHP), isso pode ser válido, porque você pode ter um grande bloco de HTML que separa o início e o fim da condição ou da estrutura do loop.
fonte
while():
endwhile;
eforeach():
endforeach;
construções etc.É um cheiro de código e geralmente uma ressaca do estilo de código antiquado. Antes que a refatoração de IDEs decentes fosse mais difícil e não tão comum como é agora, os métodos eram mais longos e esses comentários existiam para ajudar a navegá-los melhor.
fonte
Essa é uma prática horrível tornada obsoleta por muitos fatores.
Percebo que muitos programadores Java têm essa mentalidade, e isso faz com que o código Java pareça realmente sujo e afasta o foco do código e os comentários.
É altamente recomendável não usar isso.
fonte
O código é lido 10 vezes mais do que está escrito.
Se facilitar a leitura, faça.
Eu também sugeriria a qualquer pessoa que fizesse isso que deveria procurar outras maneiras de facilitar a leitura das coisas. As técnicas de refatoração, suportes em linhas diferentes etc. que outras pessoas mencionaram são boas. Dividir as coisas em diferentes funções, métodos ou classes, para que o código faça comentários pessoais também é bom. Também existem maneiras de eliminar a maioria dos "ifs" e colocar os loops "for" em lugares óbvios, eliminando assim a necessidade de qualquer coisa.
Mas, às vezes as pessoas estão aprendendo. Se isso é algo que eles estão fazendo que realmente torna o código mais legível, incentive-o e também incentive algumas outras práticas. As pessoas que estão aprendendo merecem e se beneficiarão de incentivo, independentemente de como começarem. Dizer "Isso é ruim" não é tão útil quanto dizer "Essa outra coisa é melhor".
fonte
Eu tenho uma grande base de código (C ++) cheia desse tipo de coisa:
Para algo tão pequeno, eu diria que isso vai além do "cheiro do código" para o "fedor do código". Especialmente em um IDE, onde posso combinar a chave de fechamento com um pressionamento de tecla para encontrar a chave de abertura. Dado um método mais longo, ainda aceitarei a correspondência entre os comentários do terminal. Tais comentários me distraem e eu costumo pensar neles como barulho.
fonte
No C ++, existem duas retenções onde isso ainda é útil e o conselho de "dividir seu código" não é necessário:
Para espaços para nome. Um espaço para nome pode abranger um arquivo inteiro, e esse último colchete às vezes pode afastar as pessoas; portanto, é útil adicionar um comentário para indicar que o colchete é útil. Para o estilo de codificação específico da minha empresa, isso é importante porque não recuamos espaços para nome, pois foi decidido que esse recuo apenas desperdiçaria espaço em um arquivo.
Para pares #ifdef / #endif. Às vezes, há muito código para compilação condicional, ele pode se tornar desagradável com o aninhamento, e o editor que usamos frequentemente "de maneira útil" elimina a indentação, de modo que os comentários são úteis durante uma rápida visão geral.
fonte
Para mim, o código deve ser confuso para adicionar um comentário como o que você especificou.
Se apenas indicar // Instrução IF. Então você se pergunta por que está lá em primeiro lugar.
fonte
//endif
A alternativa para ver o que sua chave está fechando é ter a abertura na mesma coluna que a chave fechada. Acho isso muito mais claro e legível.
O comentário é útil quando normalmente seria difícil rastrear porque a abertura aconteceu há muito tempo. Normalmente, isso deve acontecer apenas para um espaço para nome (particularmente o anônimo em C ++, usado para detalhes de implementação na unidade de compilação). Na maioria dos outros casos, deve ser óbvio o que você está fechando.
fonte
Isso é em grande parte uma recuperação dos velhos tempos de trabalho em janelas de terminal de 80x24 caracteres, especialmente se você estivesse usando um editor de janelas como o EVE. Mesmo agora, faço a maior parte do meu trabalho em uma sessão de terminal usando o vim, e posso dividir a sessão em três ou quatro sub-janelas, para que eu possa realmente visualizar apenas algumas linhas por vez.
Dito isto, eu nunca realmente me entusiasmei com a convenção, mesmo que ela tivesse salvado meu bacon em mais de uma ocasião. Eu apenas vejo isso como barulho. Se seus loops ou condicionais estão ficando tão grandes, sim, convém refatorar.
fonte
você basicamente fornece todos os motivos válidos para não usar isso. Todo programador decente deve aplicá-las. Então, por que as pessoas o usam? Porque eles estão fazendo errado e não sabem melhor.
fonte