Venho programando em C e C ++ há algum tempo, embora eu diria que estou longe de ser um especialista. Há algum tempo, venho usando várias estratégias para desenvolver meu código, como testes de unidade, design orientado a testes, revisões de código e assim por diante.
Quando escrevi meus primeiros programas no BASIC, digitei longos blocos antes de descobrir que eles não funcionariam e eram um pesadelo para depuração. Então eu aprendi a escrever um pouco e testá-lo.
Hoje em dia, muitas vezes me pego escrevendo repetidamente um pequeno pedaço de código e depois usando o compilador para encontrar todos os erros. Tudo bem se detectar um erro de digitação, mas quando você começar a ajustar os tipos de parâmetros, etc., apenas para compilá-lo, você pode estragar o design. Parece também que o compilador está entrando no processo de design quando deve ser usado apenas para verificar a sintaxe.
Há um perigo aqui de confiança excessiva no compilador para melhorar meus programas. Existem estratégias melhores que essa?
Lembro-me vagamente há algum tempo de um artigo sobre uma empresa que desenvolvia um tipo de compilador C, em que um arquivo de cabeçalho extra também especificava os protótipos. A idéia era que as inconsistências na definição da API seriam mais fáceis de detectar se você tivesse que defini-la duas vezes de maneiras diferentes.