L’un des principaux arguments du battage médiatique autour de ChatGPT est qu’il peut être un outil de programmation efficace. L’idée est la suivante : vous décrivez ce que vous voulez en langage naturel ; le chatbot génère le code qui le fait. Mais quelle est la capacité réelle de ChatGPT à faire cela ?



Quel meilleur moyen de le savoir que de le mettre à l’épreuve ? Nous avons demandé à ChatGPT de créer une application web simple à partir de zéro. Voici le résultat de notre test et les étapes à suivre pour créer un site web à partir de zéro en utilisant ChatGPT.


Etape 1 : Générer le plan de votre application web

Tout comme vous le feriez pour construire une application web avec n’importe quel outil, vous devez établir le plan de votre application et les étapes nécessaires à sa construction avant de laisser ChatGPT s’en charger.

Pour notre première tâche, nous avons demandé à ChatGPT de développer une application de chat simple. Pour ce faire, nous avons décrit les exigences de notre application web, puis nous avons demandé au chatbot de détailler un plan de développement de l’application.

ChatGPT invite à développer un plan pour une application web

Après avoir utilisé l’invite ci-dessus, voici le résultat que nous avons obtenu :

Organigramme ou plan de l'application web développée par chatgpt

Vous devez activer le plugin « Show Me » sur votre compte ChatGPT pour générer un organigramme comme le nôtre ci-dessus. Vous pouvez installer et utiliser les plugins ChatGPT en quelques étapes seulement, bien que vous ayez besoin d’un abonnement premium.

Sans le plugin, vous obtiendrez un plan textuel ou un organigramme en ASCII. Ce n’est pas grave. Même sans le plugin, ChatGPT devrait fournir un schéma clair de l’application comme dans l’exemple ci-dessous.

décomposition textuelle de l'application web par ChatGPT


Étape 2 : Diviser le plan en petits modules

Maintenant que nous avons une vue d’ensemble, nous avons demandé à ChatGPT de nous aider à diviser l’application en composants plus petits que nous pouvons développer séparément et ensuite intégrer pour former l’application web complète. ChatGPT nous a suggéré de la diviser en trois composants :

  1. Module d’enregistrement
  2. Module de connexion
  3. Module de chat

Nous avions d’autres idées, mais l’objectif ici est de laisser ChatGPT prendre les commandes.

1. Construire le composant d’enregistrement

Nous nous sommes immédiatement lancés dans la construction du composant d’enregistrement. Nous avons demandé à ChatGPT d’élaborer un algorithme approprié. Nous sommes intervenus en spécifiant que nous n’avions besoin que du nom d’utilisateur, de l’email et de l’avatar de l’utilisateur pour l’enregistrement. Voici l’invite :

Invite de construction du composant d'enregistrement

Et voici le résultat :

Algorithme pour l'enregistrement des utilisateurs

Ensuite, nous avons demandé à ChatGPT de construire le composant d’enregistrement.

invite à générer le composant d'enregistrement

Bien que nous n’ayons pas inclus le champ du mot de passe dans le processus d’enregistrement, ChatGPT a pris la bonne décision en l’incluant dans le code HTML généré. Nous avons copié le code sans aucune modification, et voici ce qu’il donne sur un navigateur.

Page d'inscription générée par ChatGPT

Ensuite, nous avons demandé à ChatGPT de générer le script d’enregistrement PHP. Dans un premier temps, nous avons demandé à ChatGPT d’écrire un code PHP pour la logique côté serveur afin de gérer la soumission du formulaire. Bien que le script généré ait fonctionné correctement, il présentait de nombreuses vulnérabilités.

Il n’y avait pas de hachage de mot de passe, pas de gestion des erreurs, et il était sujet aux injections SQL – ChatGPT ne faisait que le strict minimum. Il a été relativement facile de remédier à cette situation. Nous avons simplement demandé à ChatGPT d' »identifier tout ce qui ne va pas dans le code que vous venez de générer, et d’utiliser les points identifiés pour optimiser le code ». Notre script d’enregistrement PHP était alors prêt à fonctionner.

La formulation de votre message-guide est importante. Vous devez être très clair et précis sur ce que vous voulez que ChatGPT fasse. Lorsque nous lui avons simplement demandé de  » résoudre le problème avec ce code « , il n’a pas résolu la plupart des problèmes que nous souhaitions qu’il résolve. Pour plus de conseils sur la rédaction des messages-guides de ChatGPT, voici quelques endroits où apprendre à rédiger des messages-guides efficaces.

Ensuite, nous avons demandé à ChatGPT de « d’écrire un code SQL pour créer une base de données pour les données capturées dans le script PHP. » Voici le code SQL obtenu :

Code SQL généré pour la création de la base de données par ChatGPT

Et voici la table créée en exécutant le code SQL :

Base de données créée par ChatGPT

Une fois la base de données créée, nous avons essayé notre premier enregistrement, qui s’est déroulé sans aucune erreur.

2. Construction du composant de connexion

Le composant d’enregistrement étant terminé, nous nous sommes attaqués au composant de connexion. Étonnamment, il a été le plus facile à construire malgré la logique supplémentaire de la gestion des sessions.

Invitation à générer un script de connexion

Voici la page de connexion générée. On remarquera qu’elle utilise les mêmes options de couleur que la page d’enregistrement.

Page de connexion générée par ChatGPT

Après avoir créé un fichier « server.login.php » selon les instructions de ChatGPT et ajouté le script PHP généré, nous avons réussi notre première connexion sans aucune modification ou débogage.

3. Construire le composant Chat

La construction du composant de chat a été la dernière partie – et probablement la plus difficile – de notre petite expérience. Au début, nous avons simplement demandé à ChatGPT d’écrire le code du composant de discussion. Inutile de dire que ce fut un échec colossal. Pour les composants plus complexes de tout ce que vous voulez créer, vous devrez le diviser en composants plus petits et vous y attaquer l’un après l’autre.

Nous avons demandé à ChatGPT des suggestions pour diviser le composant de chat, et il nous a suggéré de créer trois pages :

  1. Chat.php
  2. Envoyer des messages.php
  3. Récupérer les messages.php

Lorsque ChatGPT suggère un nom de fichier, l’utilisation d’un nom différent dans votre projet peut involontairement causer des problèmes car le chatbot référencera le même nom dans tout le code qu’il crée dans le projet. Nous l’avons appris à nos dépens. Ne faites pas la même erreur.

Création de la page Chat.php

Pour commencer, nous avons donné à ChatGPT des instructions détaillées sur la façon dont nous voulions que l’interface de chat se présente.

Invitation de ChatGPT à générer du HTML pour l'interface de chat

Après avoir exécuté le code HTML généré, nous avions une interface de chat sans boîte de saisie de message. Pour résoudre ce problème, nous avons simplement demandé à ChatGPT de « réécrire le code pour inclure une boîte de saisie de message et un bouton d’envoi. » Voici à quoi ressemble le code généré sur un navigateur lors du deuxième essai.

exemple d'interface de chat générée par ChatGPT

Lorsque le code généré ne donne pas les résultats escomptés ou omet un composant important, il suffit de demander à ChatGPT de réécrire le dernier code. Dites-lui d’inclure le composant ou de faire ce qui n’a pas été fait dans le code initial. Voici quelques conseils sur l’utilisation de ChatGPT pour la programmation.

Création des pages « send-messages.php » et « Fetch-messages ».

Satisfaits de l’interface, nous sommes passés à la construction du script pour gérer la logique du chat. Pour pouvoir envoyer et récupérer des messages de la base de données, ChatGPT a souligné à juste titre que nous aurions besoin d’une table « messages ». Nous avons demandé au chatbot de créer un SQL pour la table « messages ».

SQL pour créer la table des messages du chat

Après avoir généré un code SQL, nous avons demandé au chatbot de générer un script PHP pour gérer la logique de messagerie.

ChatGPT invite à envoyer et recevoir des messages

ChatGPT a généré le script pour les pages « send-messages.php » et « fetch-messages.php ». En exécutant les deux scripts, nous avons finalement obtenu notre toute première erreur (ce qui était étrangement satisfaisant). Arriver aussi loin dans le projet sans déboguer une seule ligne de code semblait un peu trop beau pour être vrai, malgré sa relative simplicité.

Il s’avère que l’erreur a été causée par ChatGPT qui a introduit une vérification pour une variable de session non déclarée ($_SESSION[‘user_id’]) dans notre script. Nous pensons que c’est le résultat d’une pause assez longue dans le projet qui a fait que ChatGPT a oublié certains contextes et noms de variables utilisés dans le projet.

Lorsque vous utilisez ChatGPT pour construire une application, assurez-vous d’utiliser le même fil de discussion et essayez de compléter les composants connexes dès que possible. L’utilisation d’un nouveau fil de discussion ou une longue pause peut introduire des incohérences. ChatGPT a tendance à oublier certains détails du projet en cours (par exemple la palette de couleurs) si vous faites de longues pauses entre les sessions de codage.

Ceci dit, nous avons corrigé le bug et déployé le code. Nous nous sommes inscrits, connectés et avons essayé la fonction de chat. Bien que nous ayons pu envoyer des messages d’un utilisateur enregistré à un autre, la couleur et la disposition des bulles de message étaient un peu différentes. Cependant, pour une application qui a pris une heure et 23 minutes à réaliser, nous ne la jugerons pas trop sévèrement.


ChatGPT : Un excellent assistant de codage

ChatGPT est clairement un puissant assistant de codage. Le fait que le chatbot puisse produire un code impressionnant à partir d’instructions simples, et parfois peu claires, témoigne de ses prouesses en matière de codage.

Bien sûr, il a encore beaucoup de défauts. Le problème de la fenêtre contextuelle limitée et de sa capacité à relier la logique de plusieurs composants construits indépendamment est un problème majeur. Cependant, le chatbot peut vous aider à construire rapidement des applications web assez complexes si vous savez vous y prendre.