1 points par GN⁺ 2024-06-10 | 2 commentaires | Partager sur WhatsApp

Une seule erreur de ChatGPT a entraîné une perte de plus de 10 000 $

Processus de monétisation 🛣️

  • Contexte : la startup a commencé sa monétisation à un stade précoce.
  • Tarification : le prix a été fixé à 40 $ par mois sur le conseil d’un group partner de YC.
  • Stack technique : migration de NextJS vers Python/FastAPI. Intégration de Stripe terminée.

La cause de la perte de 10 000 $ 💰

  • Problème survenu : un problème de spinner de chargement infini est apparu dans la fonctionnalité d’abonnement.
  • Résolution du problème : après avoir analysé d’innombrables e-mails et logs pendant 5 jours, le problème a été identifié.
  • Cause : le code généré par ChatGPT contenait une erreur dans la méthode de génération des ID. Une chaîne d’ID fixe était utilisée, provoquant des collisions d’ID.

Chasser le bug 🐛

  • Description du problème : l’utilisation d’une chaîne d’ID fixe provoquait des collisions. Comme plusieurs instances tournaient sur AWS ECS, il n’y avait pas de problème en journée, mais des collisions survenaient la nuit.
  • Solution : utiliser une fonction de génération de UUID au lieu d’un ID fixe. Une fois le problème corrigé, le système s’est stabilisé.

Conclusion 🤖

  • Leçon retenue : l’auteur reconnaît des erreurs comme le manque de tests, le copier-coller de code et les commits directs sur la branche principale.
  • Expérience : une expérience douloureuse, mais restée comme un moment important dans la vie de la startup.

L’avis de GN⁺

  • Importance des tests : il faut des tests unitaires et des tests d’intégration suffisants.
  • Revue de code : au lieu de copier-coller du code, la revue et la validation du code sont essentielles.
  • Stratégie de déploiement : plutôt que de commit directement sur la branche principale, mieux vaut utiliser une branche séparée et passer par une revue de code.
  • Capacité à résoudre les problèmes : la capacité à identifier et résoudre rapidement un problème est importante.
  • Choix de la stack technique : un changement de stack technique doit être planifié et testé avec soin.

2 commentaires

 
znjadong 2024-06-11

Hein, le code généré automatiquement par une IA doit évidemment être relu, pourquoi l’utiliser tel quel ?

 
GN⁺ 2024-06-10
Avis Hacker News
  • Premier avis : L’erreur a été détectée immédiatement. Le manque d’expertise de l’équipe en est la cause. Avec une solution de monitoring, elle aurait pu être repérée facilement.
  • Deuxième avis : Grâce à ChatGPT, l’application a généré des revenus. Le manque de compétences en codage, débogage, logging et monitoring est la cause de la perte de 10 000 $.
  • Troisième avis : Le manque de monitoring est la cause de la perte de 10 000 $. Une exception de base de données s’est produite, mais aucune alerte n’a été envoyée. S’il y avait eu une alerte, le problème aurait pu être résolu en 5 minutes.
  • Quatrième avis : Il signale le problème de la stratégie d’évaluation des arguments par défaut en Python. Ils sont évalués au moment de la définition de la fonction. Cela a peut-être été voulu pour des raisons d’efficacité. La façon dont Python crée les listes est également pointée du doigt.
  • Cinquième avis : Les humains font souvent la même erreur. C’est particulièrement fréquent en React/TypeScript/JavaScript, quand on oublie d’utiliser une lambda. Il pense que le billet de blog n’expliquait pas correctement la cause profonde du problème.
  • Sixième avis : L’erreur peut facilement se produire. Mais il ne comprend pas pourquoi elle n’a pas été détectée après le premier échec. Il se demande s’il n’y avait pas de logging.
  • Septième avis : Rendre ce problème public paraît naïf. ChatGPT n’a aucune raison d’être blâmé. Cela lui fait penser à une idée de service de revue de code.
  • Huitième avis : Le problème est dû à des contraintes de temps. C’est à cause de ce genre de contraintes qu’il se méfie des abonnements logiciels.
  • Neuvième avis : Il ne comprend pas les startups qui justifient une réécriture complète alors qu’elles n’ont même pas encore de clients.
  • Dixième avis : Savoir utiliser les LLMs, c’est savoir quand et comment les utiliser. La réponse de ChatGPT était appropriée, mais voir une recommandation disant de supprimer tous les utilisateurs sur une ligne précise lui a donné une grande leçon.

Chaque avis offre un angle différent sur les problèmes pouvant survenir dans le processus de développement logiciel et sur leurs solutions. Cela peut apporter des enseignements utiles à un ingénieur logiciel débutant.