Je voudrais savoir, dans un sens pratique, sur un projet à grande échelle (Java - mon cas) est-il préférable de coder simplement la logique défensive pour protéger contre les données invalides dans la BD ou simplement prendre le temps de passer Assurez-vous que vous n'acceptez aucune donnée invalide? Rappelez-vous, le problème ici est qu'il y a beaucoup de cas où une valeur nulle est correcte, et il y a beaucoup de cas où une valeur nulle n'est pas, donc le cas pour s'assurer qu'il n'y a pas de données invalides est non trivial. La raison pour laquelle je pose cette question est parce que je travaille sur un grand projet et que je me retrouve à courir après quelques mauvaises exceptions de pointeur nul pour me rendre compte que la raison pour laquelle il est lancé est obscure. Donc, je vais parler avec un ingénieur système seulement pour réaliser que dans la conception, cela est censé avoir été défini par un utilisateur, etc.Assurer des données valides ou protéger contre les données invalides? Tous les deux?
Remarque: ne pas attribuer ces problèmes à la simple "mauvaise conception des systèmes" . La question de savoir si le design aurait pu être meilleur n'est pas la question à résoudre (car tout design peut évidemment être amélioré). Je voudrais prendre cette forme comme un point de vue d'un développeur qui a déjà rejoint un projet très avancé (en termes de temps passé et de lignes de code) et ce qu'il devrait faire à partir de maintenant?
Merci!
** Il me vient à l'esprit que beaucoup pourraient considérer cela comme un problème opiniâtre? Si tel est le cas, n'importe qui peut se sentir libre d'en faire un wiki communautaire. Je ne suis pas sûr cependant. Il pourrait y avoir une convention ou une «bonne pratique» dont beaucoup ne sont pas au courant et qui, par la suite, ne serait pas du tout une question dogmatique, simplement pour m'informer, un nouveau développeur, de cette pratique.