<OFF>
Boa, neste contexto acho engraçado os conflitosas gerados por tickets
que acabam solicitando a alteração de um código que já sofreu
manipulação por outros tickets. Lei de Murphy
[ ]s
Quando é uma função pequena só a descrição da função já basta. Porém
comentários elucidativos, como explicar uma fórmula, comentar de
onde foi tirado um algoritmo ou mencionar referências, são
essenciais.
> -----Mensagem original-----
> De: Thiago Adams
/* Verificar com [FULANO] Ramal:[XXXX] */
Foi mto boa mesmo hahaahaha
[snip]
--
Felipe Magno de Almeida
int capitalize( char *dst, char *src, int len ) {
numerosEPalavrasNumeradas(buffer);
letrasEAlgRomanos(buffer);
simbolosEAcentos(buffer);
preoposicoesEConectivos(buffer);
artigos(buffer);
abreviaturas(buffer);
}
Note que os métodos poderiam ser em inglês e com nomes mais ilustrativos. Eu diria que você teria 3 vantagens diretas: * Teria métodos que poderiam ser reusados; * Teria um código mais limpo e simples de compreender; * Manutenção ficaria localizada em partes que teriam menos efeitos colaterais.--
Outro ponto é que ter muitas funções espalhadas pelo código pode
dificultar um pouco acompanhar um algoritmo ou mesmo encontrar um
problema.
Lembrei de um outro tipo de comentário: os esquemáticos. Utilizava
muito para fazer relatórios em modo texto:
/*
Ref. Descrição Estoque...
0------7------------------------------38---------...
00.000 123456789012345678901234567890 ##0,000.000...
*/
Também utilizo para passar esquemas feitos no papel, que me ajudam a
elaborar um algoritmo, para o código.
Márcio Gil.
P.S.: por favor, não interprete meus argumentos como teimosia, numa
discussão costumo manter o contraditório com o fim de servir de
antítese.
---- Mensagem original ----
> De: Márcio Geovani Jasinski
> Quando escrever o fonte, tente escrever somente conceitos uns
> sobre os outros ao inv'es de codigo. Os conceitos basicos serao
> tao simples que geralmente nao eh preciso comentario. Os conceitos
> mais elaborados sao lidos em termos dos basicos.
>
Mas vamos supor que, na impossibilidade de se dividir um código em
vários pedaços, seja por causa de tempo ou desempenho ou qualquer
outro motivo, mesmo comentários óbvios podem facilitar a
decodificação do código?
Se você explica o funcionamento de um algoritmo apenas no header,
outra pessoa pode ter dificuldade de descobrir o que cada parte do
código faz. Mas se você indica no fonte, por meio de comentários, o
que cada parte do código representa, fica fácil entender o
algoritmo, e ao mesmo tempo, acompanhar no código a sua execução.
>
> Tamb'em ali tem o caso de explicar o que o fonte esta fazendo como
> por exemplo:
>
> // Ignora espaços iniciais
> while (isspace(*src))
> ++src;
>
A intenção não era explicar o código, mas explicar o algoritmo:
1º Remover os espaços iniciais;
2º Encontrar palavras:
a) Números ou palavras com números;
b) Palavras compostas somente de letras ou letras acentuadas;
c) Algarismos romanos;
3º Identificar preposições ou conectivos;
...
Por isso escolhi este exemplo, para tentar defender que mesmo
comentários aparentemente óbvios podem ser úteis.
> O problema de se ter uma documentacao tao boa no codigo fonte 'e o
> tamanho. E os problemas praticos, atualizacao etc.
> O equibrio disso tudo 'e nao fazer com que algo que eh para ser um
> auxilio se transforme em um ruido ou informacao desatualizada ou
> incorreta.
>
Aqui vou extrapolar um pouco: imagine ter uma obra de referência sem
títulos e subtítulos? Como você encontraria alguma coisa?
Outra coisa que devo notar é que o efeito obtido em se documentar um
monte de funções pequenas é o mesmo do meu código em comentar um
pedaço de código. E pode até aumentar o volume de comentários, pois
aí será necessário explicar os parâmetros, pré-condições,
pós-condições, retorno, etc. Neste caso, deixar de comentar uma
função por que seu nome deixa claro a sua intenção pode até ser
perigoso: o que é obvio para você pode não ser óbvio para outros.