non mais j'ai bien compris hein. ça fait 15 ans que je fais de la base de donnée.
Ce que je voulais dire, c'est que tout ce que tu viens de dire, tout ces cas "exceptionnel", ça se test, si possible par des tests automatisés (qui sont donc en dehors du code), pour vérifier justement que ton appli ne se plante pas ou n'insère pas n'importe quoi dans ta base. Faire une confiance aveugle à la base, c'est un peu dangereux. Il suffit par exemple un oubli de mettre la contrainte qu'il faut sur la bonne colonne, pour que ça parte en vrille (ce qui peut arriver lors d'un passage en prod, "oups, j'ai oublié d’exécuter mon script SQL d'upgrade de mon schema en prod", ou "oups, mon script d'upgrade n'était pas complet").
Et justement pour palier à ce genre d'erreur, ce n'est pas forcément inutile de faire ces vérification "à la main" dans le code comme tu indiques, surtout si ça ne gène pas au niveau des perfs ou autre, ou si ça permet de mieux controller l'execution, donc de fournir une meilleure "experience utilisateur". Parce que bon, traiter des exceptions, ce n'est pas toujours simple quand tu as plusieurs cas possible qui peut arriver au même endroit.
[^] # Re: Mauvaise méthode de développement ?
Posté par Laurent J (site web personnel, Mastodon) . En réponse au journal MySQL est une bouse immonde. Évalué à -1.
non mais j'ai bien compris hein. ça fait 15 ans que je fais de la base de donnée.
Ce que je voulais dire, c'est que tout ce que tu viens de dire, tout ces cas "exceptionnel", ça se test, si possible par des tests automatisés (qui sont donc en dehors du code), pour vérifier justement que ton appli ne se plante pas ou n'insère pas n'importe quoi dans ta base. Faire une confiance aveugle à la base, c'est un peu dangereux. Il suffit par exemple un oubli de mettre la contrainte qu'il faut sur la bonne colonne, pour que ça parte en vrille (ce qui peut arriver lors d'un passage en prod, "oups, j'ai oublié d’exécuter mon script SQL d'upgrade de mon schema en prod", ou "oups, mon script d'upgrade n'était pas complet").
Et justement pour palier à ce genre d'erreur, ce n'est pas forcément inutile de faire ces vérification "à la main" dans le code comme tu indiques, surtout si ça ne gène pas au niveau des perfs ou autre, ou si ça permet de mieux controller l'execution, donc de fournir une meilleure "experience utilisateur". Parce que bon, traiter des exceptions, ce n'est pas toujours simple quand tu as plusieurs cas possible qui peut arriver au même endroit.