A pergunta sobre valores padrão em geral - valores de função de retorno padrão, valores de parâmetro padrão, lógica padrão para quando algo está faltando, lógica padrão para tratamento de exceções, lógica padrão para tratamento de condições de borda etc.
Por um longo tempo, considerei os valores padrão uma coisa "pura maldade", algo que "encobre a catástrofe" e resulta em um erro muito difícil de encontrar. Mas, recentemente, comecei a pensar nos valores padrão como uma espécie de dívida técnica ... o que não é uma coisa ruim, mas algo que poderia fornecer algum "financiamento de curto prazo" nos leva a sobreviver ao projeto (quantos de nós poderiam pagar comprar uma casa sem tirar a hipoteca?).
Quando digo um "curto prazo" - não quero dizer - "faça algo rapidamente primeiro e refatore-o mais tarde, antes que atinja a produção". Não - estou falando de confiar em valores padrão codificados em um software de produção. Concedido - isso pode causar alguns problemas, mas e se apenas causar um único problema em um ano inteiro.
Novamente - eu estou falando sobre o software convencional "médio" aqui (não é um software para uma usina nuclear) - o site médio ou um aplicativo de interface do usuário para o software de contabilidade, o que significa que a vida das pessoas não está em jogo, nem milhões de dólares .
Novamente, pela minha experiência, os usuários corporativos preferem viver com o software que "funciona de alguma forma", em vez de esperar por um perfeito. E o uso de valores padrão ajuda muito se você desenvolver um software no estilo RAD. Mas novamente: as sessões de depuração mais longas que passei foram por causa dos erros introduzidos por um valor padrão que deixou de ser "padrão" ao longo do caminho ou porque um pequeno subsistema foi atualizado recentemente e, como resultado dessa atualização, não é manipule o padrão corretamente (por exemplo, lista vazia vs nulo ou seqüência nula vs seqüência vazia).
Então, minha pergunta é - os valores padrão são bons ou maus. E se eles são uma dívida técnica - como medir quanto você pode emprestar para poder pagar os reembolsos?
Realmente apreciaria qualquer entrada.
Felicidades.
EDITAR:
Se estou usando os valores padrão como uma maneira de cortar os cantos durante o desenvolvimento - e se o corte dos cantos resultar em bugs e problemas - qual é a metodologia para recuperar esses problemas?