Assumindo que este é um código dentro de um projeto maior (onde os desenvolvedores estarão se movendo entre a origem e os cabeçalhos com freqüência) , e
fornecendo isso não é uma biblioteca / middleware, onde outros podem não ter acesso à fonte, eu achei que isso funciona melhor ...
- Cabeçalhos:
comentários de linha do Terse 1-2, somente se eles forem necessários.
Às vezes
os comentários acima de um grupo de funções relacionadas também são úteis.
- Fonte:
Documentação sobre API diretamente acima da função (texto simples ou doxygen, se preferir) .
- Mantenha os detalhes da implementação, relevantes apenas para um desenvolvedor que esteja modificando o código no corpo da função.
A principal razão para isso é manter os comentários perto do código. Percebi que os documentos nos cabeçalhos tendem a ficar fora de sincronia com as alterações no código com mais frequência (claro que não deveriam, mas eles fizeram no nosso projeto, pelo menos) .
Também os desenvolvedores podem adicionar documentação na parte superior das funções quando fizerem alguma alteração, mesmo se houver documentos de cabeçalho ... em algum outro lugar.
Causar duplas ou informações úteis apenas para estar em uma das cadeias de documentos.
É claro que você pode escolher uma convenção e garantir que todos os desenvolvedores sigam, eu achei a convenção acima da mais natural-fit e causa menos problemas para manter.
Por último, para projetos grandes - há uma inclinação não para fazer pequenas correções em um cabeçalho quando você sabe que isso pode fazer com que centenas ou milhares de arquivos sejam re-compilados quando outros atualizarem a versão controle - retardando erros de divisão também.