La question sur les valeurs par défaut en général - valeurs de fonction de retour par défaut, valeurs de paramètres par défaut, logique par défaut pour quand quelque chose manque, logique par défaut pour gérer les exceptions, logique par défaut pour gérer les conditions de bord, etc.
Pendant longtemps, j'ai considéré les valeurs par défaut comme une chose "purement diabolique", quelque chose qui "masque la catastrophe" et a pour conséquence de trouver des bugs très difficiles. Mais récemment, j'ai commencé à considérer les valeurs par défaut comme une sorte de dette technique ... ce qui n'est pas une mauvaise chose, mais quelque chose qui pourrait fournir un "financement à court terme" pour nous permettre de survivre au projet (combien d'entre nous pouvaient se permettre acheter une maison sans contracter l'hypothèque?).
Quand je dis «à court terme» - je ne veux pas dire - «faites d'abord quelque chose rapidement et refactorisez-le plus tard avant qu'il n'atteigne la production». Non - je parle de compter sur des valeurs par défaut codées en dur dans un logiciel de production. Certes - cela pourrait causer des problèmes, mais que se passerait-il si cela ne causait qu'un seul problème en une année entière.
Encore une fois - je parle ici du logiciel traditionnel "moyen" (pas un logiciel pour une centrale nucléaire) - du site Web moyen ou d'une application d'interface utilisateur pour le logiciel de comptabilité, ce qui signifie que la vie des gens n'est pas en jeu, ni des millions de dollars .
Encore une fois, d'après mon expérience, les utilisateurs professionnels préfèrent vivre avec le logiciel qui "fonctionne d'une manière ou d'une autre", plutôt que d'attendre un parfait. Et l'utilisation de valeurs par défaut aide beaucoup si vous développez un logiciel dans un style RAD. Mais encore une fois - les sessions de débogage les plus longues que j'ai passées étaient dues aux bogues introduits par une valeur par défaut qui soit cessait d'être "par défaut" en cours de route, soit parce qu'un petit sous-système a récemment été mis à niveau et que cette mise à niveau ne le fait pas. gérer correctement la valeur par défaut (par exemple, liste vide vs null, ou chaîne null vs chaîne vide).
Ma question est donc - les valeurs par défaut sont-elles bonnes ou mauvaises? Et s'il s'agit d'une dette technique - comment mesurer le montant que vous pouvez emprunter pour vous permettre de rembourser?
J'apprécierais vraiment n'importe quelle entrée.
À votre santé.
ÉDITER:
Si j'utilise les valeurs par défaut comme moyen de couper les coins pendant le développement - et si la coupe des coins entraîne des bugs et des problèmes - quelle est la méthodologie pour récupérer de ces problèmes?